Skip to content

예제 지도

예제들을 큰 범주 → 작은 범주로 묶어두었습니다. 필요한 부분만 골라 보세요.

  • HUD (화면 위 표시) 좌표, 경험치 바, 아이콘 알림
  • 핫바, 아이템 내구도, 상태 표시

서버 폼/대화창

  • 버튼 목록(form_buttons) 기반 UI
  • 제목(title_text)로 화면 분기

NPC 상호작용

  • live_player_renderer로 NPC 표시
  • 대화 + 선택지 버튼 구성

인벤토리/컨테이너

  • 상자, 제작대, 화로 같은 슬롯 화면
  • 아이템 아이콘, 스택 수, 선택 강조

채팅/알림

  • 채팅 필터, 자동완성 버튼
  • 액션바/알림 텍스트 분해

설정/메뉴

  • 토글/슬라이더/드롭다운
  • 섹션 분리, 탭 이동

월드/시작 화면

  • 월드 목록, 서버 목록
  • 버튼 그리드, 카드형 레이아웃

상점/마켓

  • 상품 카드, 배너, 프로모션
  • 스크롤 목록, 필터/정렬

스킨/프로필

  • 미리보기 렌더러
  • 선택/잠금 상태 표시

로그인/안전/경고

  • 확인/취소 버튼, 경고 메시지
  • 접근성 안내 및 링크

애니메이션/연출

  • 로딩 오버레이, 진행 바
  • 버튼 강조, 페이드 효과

처음엔 HUD나 서버 폼 하나만 골라서 따라 하는 것이 가장 쉽습니다.

예제 전체 목록

파일 이름을 누르면 바로 아래 예제 내용으로 이동합니다.

common

module

module lib

screen

ui extras

기본 UI 모음 1

settings sections

기본 UI 모음 2

MintUI

settings sections

실전 예제

이전 버전 예제

소형 npc ui

추가 HUD 예제

초보 예제 모음

chat notifications no examples

Custom Animated Toggle Template

loading anim template

가로스크롤 예제

예제1

예제3

MagicWay UI

StarLib

StarLibV2-1.0.3.3

통합 UI 모음

components

UI 재료 모음

.runeui

textures

예제 미리보기

예제 목록에서 고른 파일이 여기로 연결됩니다. 코드 상단 주석은 왜 이 줄을 쓰는지 설명합니다.

RainbowPie UI 83 개

기본

compatibility.json RainbowPie UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: compatibility.json
// 분류: RainbowPie UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_compatibility_config",

  // Only override compatibility panels
  "compatibility_variables": {
    // 오버라이드 가능한 변수
    "$compatibility_target_version": 12111300,
    // 오버라이드 가능한 변수
    "$compatibility_max_version": 12111900,
    // 오버라이드 가능한 변수
    "$compatibility_min_version": 12111000
  }
}

module_pack.json RainbowPie UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: module_pack.json
// 분류: RainbowPie UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_module_pack",

  // 다른 템플릿을 가져와서 확장(상속)
  "module_list@rainbowpie_ui_module_list.module_list_panel": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "chest_fastpick@rainbowpie_ui_module_list.module_item": {
          // 오버라이드 가능한 변수
          "$module_icon_texture": "($rainbowpie_ui_path_home + '/icon/module')",
          // 오버라이드 가능한 변수
          "$module_name": "Chest Fast Pickup",
          // 오버라이드 가능한 변수
          "$module_version": "1.5",
          // 오버라이드 가능한 변수
          "$module_author": "MintCoolMC",
          // 오버라이드 가능한 변수
          "$module_description": "Quickly pick items from chest",
          // 오버라이드 가능한 변수
          "$module_state_check": "$rainbowpie_ui_module_chest_fastpick",
          // 오버라이드 가능한 변수
          "$module_max_engine_version": "999999",
          // 오버라이드 가능한 변수
          "$module_max_engine_patch_version": "999999",
          // 오버라이드 가능한 변수
          "$module_min_engine_version": "0",
          // 오버라이드 가능한 변수
          "$module_min_engine_patch_version": "0",
          // 오버라이드 가능한 변수
          "$module_variable_display": true,
          // 오버라이드 가능한 변수
          "$module_variables": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "redstone_blocks@rainbowpie_ui_module_list.module_variable_item": {
                // 오버라이드 가능한 변수
                "$variable_name": "$rainbowpie_ui_moduleflag_chest_fastpick_redstone_blocks",
                // 오버라이드 가능한 변수
                "$variable_name_display": "rainbowpie_ui_moduleflag_chest_fastpick_redstone_blocks",
                // 오버라이드 가능한 변수
                "$variable_description": "Allow use fastpick in redstone blocks (hopper, dropper, dispenser, crafter)"
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hud_block_counter@rainbowpie_ui_module_list.module_item": {
          // 오버라이드 가능한 변수
          "$module_icon_texture": "($rainbowpie_ui_path_home + '/module/hud_block_counter')",
          // 오버라이드 가능한 변수
          "$module_name": "HUD Block Counter",
          // 오버라이드 가능한 변수
          "$module_version": "2.1",
          // 오버라이드 가능한 변수
          "$module_author": "MintCoolMC",
          // 오버라이드 가능한 변수
          "$module_description": "Shows the total count of held blocks in the hotbar",
          // 오버라이드 가능한 변수
          "$module_state_check": "$rainbowpie_ui_module_hud_block_counter",
          // 오버라이드 가능한 변수
          "$module_max_engine_version": "999999",
          // 오버라이드 가능한 변수
          "$module_max_engine_patch_version": "999999",
          // 오버라이드 가능한 변수
          "$module_min_engine_version": "0",
          // 오버라이드 가능한 변수
          "$module_min_engine_patch_version": "0"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hud_bow_helper@rainbowpie_ui_module_list.module_item": {
          // 오버라이드 가능한 변수
          "$module_icon_texture": "($rainbowpie_ui_path_home + '/module/hud_bow_helper')",
          // 오버라이드 가능한 변수
          "$module_name": "HUD Bow Helper",
          // 오버라이드 가능한 변수
          "$module_version": "2.0",
          // 오버라이드 가능한 변수
          "$module_author": "MintCoolMC",
          // 오버라이드 가능한 변수
          "$module_description": "Shows the total count of arrows in the inventory",
          // 오버라이드 가능한 변수
          "$module_state_check": "$rainbowpie_ui_module_hud_bow_helper",
          // 오버라이드 가능한 변수
          "$module_max_engine_version": "999999",
          // 오버라이드 가능한 변수
          "$module_max_engine_patch_version": "999999",
          // 오버라이드 가능한 변수
          "$module_min_engine_version": "0",
          // 오버라이드 가능한 변수
          "$module_min_engine_patch_version": "0"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hud_compass@rainbowpie_ui_module_list.module_item": {
          // 오버라이드 가능한 변수
          "$module_icon_texture": "($rainbowpie_ui_path_home + '/module/hud_compass')",
          // 오버라이드 가능한 변수
          "$module_name": "HUD Compass",
          // 오버라이드 가능한 변수
          "$module_version": "1.0",
          // 오버라이드 가능한 변수
          "$module_author": "MintCoolMC",
          // 오버라이드 가능한 변수
          "$module_description": "Show clock & compass on the HUD when you have them in your inventory",
          // 오버라이드 가능한 변수
          "$module_state_check": "$rainbowpie_ui_module_hud_compass",
          // 오버라이드 가능한 변수
          "$module_max_engine_version": "999999",
          // 오버라이드 가능한 변수
          "$module_max_engine_patch_version": "999999",
          // 오버라이드 가능한 변수
          "$module_min_engine_version": "0",
          // 오버라이드 가능한 변수
          "$module_min_engine_patch_version": "0"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hud_selected_item_id@rainbowpie_ui_module_list.module_item": {
          // 오버라이드 가능한 변수
          "$module_icon_texture": "($rainbowpie_ui_path_home + '/module/hud_selected_item_id')",
          // 오버라이드 가능한 변수
          "$module_name": "HUD Selected Item ID",
          // 오버라이드 가능한 변수
          "$module_version": "1.0",
          // 오버라이드 가능한 변수
          "$module_author": "MintCoolMC",
          // 오버라이드 가능한 변수
          "$module_description": "DEBUG",
          // 오버라이드 가능한 변수
          "$module_state_check": "$rainbowpie_ui_module_hud_selected_item_id",
          // 오버라이드 가능한 변수
          "$module_max_engine_version": "999999",
          // 오버라이드 가능한 변수
          "$module_max_engine_patch_version": "999999",
          // 오버라이드 가능한 변수
          "$module_min_engine_version": "0",
          // 오버라이드 가능한 변수
          "$module_min_engine_patch_version": "0"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_actions@rainbowpie_ui_module_list.module_item": {
          // 오버라이드 가능한 변수
          "$module_icon_texture": "($rainbowpie_ui_path_home + '/icon/module')",
          // 오버라이드 가능한 변수
          "$module_name": "Inventory Actions",
          // 오버라이드 가능한 변수
          "$module_version": "1.7",
          // 오버라이드 가능한 변수
          "$module_author": "MintCoolMC",
          // 오버라이드 가능한 변수
          "$module_description": "More Actions in inventory.",
          // 오버라이드 가능한 변수
          "$module_state_check": "$rainbowpie_ui_module_inventory_actions",
          // 오버라이드 가능한 변수
          "$module_max_engine_version": "999999",
          // 오버라이드 가능한 변수
          "$module_max_engine_patch_version": "999999",
          // 오버라이드 가능한 변수
          "$module_min_engine_version": "0",
          // 오버라이드 가능한 변수
          "$module_min_engine_patch_version": "0",
          // 오버라이드 가능한 변수
          "$module_variable_display": true,
          // 오버라이드 가능한 변수
          "$module_variables": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "delete_item_enabled@rainbowpie_ui_module_list.module_variable_item": {
                // 오버라이드 가능한 변수
                "$variable_name": "$rainbowpie_ui_moduleflag_inventory_actions_delete_item_enabled",
                // 오버라이드 가능한 변수
                "$variable_name_display": "rainbowpie_ui_moduleflag_inventory_actions_delete_item_enabled",
                // 오버라이드 가능한 변수
                "$variable_description": "Enable delete item button in creative mode"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "delete_all_item_enabled@rainbowpie_ui_module_list.module_variable_item": {
                // 오버라이드 가능한 변수
                "$variable_name": "$rainbowpie_ui_moduleflag_inventory_actions_delete_all_item_enabled",
                // 오버라이드 가능한 변수
                "$variable_name_display": "rainbowpie_ui_moduleflag_inventory_actions_delete_all_item_enabled",
                // 오버라이드 가능한 변수
                "$variable_description": "Enable delete all items button in creative mode"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "drop_item_enabled@rainbowpie_ui_module_list.module_variable_item": {
                // 오버라이드 가능한 변수
                "$variable_name": "$rainbowpie_ui_moduleflag_inventory_actions_drop_item_enabled",
                // 오버라이드 가능한 변수
                "$variable_name_display": "rainbowpie_ui_moduleflag_inventory_actions_drop_item_enabled",
                // 오버라이드 가능한 변수
                "$variable_description": "Enable drop item button"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "drop_all_item_enabled@rainbowpie_ui_module_list.module_variable_item": {
                // 오버라이드 가능한 변수
                "$variable_name": "$rainbowpie_ui_moduleflag_inventory_actions_drop_all_item_enabled",
                // 오버라이드 가능한 변수
                "$variable_name_display": "rainbowpie_ui_moduleflag_inventory_actions_drop_all_item_enabled",
                // 오버라이드 가능한 변수
                "$variable_description": "Enable drop all items button"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "quick_craft_enabled@rainbowpie_ui_module_list.module_variable_item": {
                // 오버라이드 가능한 변수
                "$variable_name": "$rainbowpie_ui_moduleflag_inventory_actions_quick_craft_enabled",
                // 오버라이드 가능한 변수
                "$variable_name_display": "rainbowpie_ui_moduleflag_inventory_actions_quick_craft_enabled",
                // 오버라이드 가능한 변수
                "$variable_description": "Enable quick craft button"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "armor_switch_enabled@rainbowpie_ui_module_list.module_variable_item": {
                // 오버라이드 가능한 변수
                "$variable_name": "$rainbowpie_ui_moduleflag_inventory_actions_armor_switch_enabled",
                // 오버라이드 가능한 변수
                "$variable_name_display": "rainbowpie_ui_moduleflag_inventory_actions_armor_switch_enabled",
                // 오버라이드 가능한 변수
                "$variable_description": "Enable armor switching"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "bce3269f@rainbowpie_ui_module_list.module_variable_item": {
                // 오버라이드 가능한 변수
                "$variable_name": "$rainbowpie_ui_flag_bce3269f",
                // 오버라이드 가능한 변수
                "$variable_name_display": "rainbowpie_ui_flag_bce3269f",
                // 오버라이드 가능한 변수
                "$variable_description": "InventoryUI new touch mode drop"
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "lib_hud_item@rainbowpie_ui_module_list.module_item": {
          // 오버라이드 가능한 변수
          "$module_icon_texture": "($rainbowpie_ui_path_home + '/icon/module')",
          // 오버라이드 가능한 변수
          "$module_name": "HUD Item Lib",
          // 오버라이드 가능한 변수
          "$module_version": "2.1",
          // 오버라이드 가능한 변수
          "$module_author": "MintCoolMC, 衡川(Crosmover)",
          // 오버라이드 가능한 변수
          "$module_description": "module lib hud item",
          // 오버라이드 가능한 변수
          "$module_state_check": true,
          // 오버라이드 가능한 변수
          "$module_max_engine_version": "999999",
          // 오버라이드 가능한 변수
          "$module_max_engine_patch_version": "999999",
          // 오버라이드 가능한 변수
          "$module_min_engine_version": "0",
          // 오버라이드 가능한 변수
          "$module_min_engine_patch_version": "0"
        }
      }
    ]
  }
}

pixelart.json RainbowPie UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: pixelart.json
// 분류: RainbowPie UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_pixelart",

  // ???/?? ??
  "transparent_pixel": {
    // 이미지 표시
    "type": "image",
    // 오버라이드 가능한 변수
    "$pixel_size|default": [ 1, 1 ],
    // 가로/세로 크기
    "size": "$pixel_size"
  },

  // ???/?? ??
  "color_pixel": {
    // 이미지 표시
    "type": "image",
    // 오버라이드 가능한 변수
    "$pixel_size|default": [ 1, 1 ],
    // 가로/세로 크기
    "size": "$pixel_size",
    // 사용할 이미지 경로
    "texture": "textures/ui/White"
  },

  // ???/?? ??
  "niko_oneshot": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%cm", "100%c" ], // 29x31 pixels
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "pixel_29x1": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x2": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x3": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5450980392156862,
                  0.2431372549019608,
                  0.4
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x4": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x5": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x6": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x7": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5529411764705883,
                  0.2509803921568628,
                  0.407843137254902
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x8": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x9": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x10": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4705882352941176,
                  0.1372549019607843,
                  0.3098039215686274
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.0666666666666667,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x11": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x12": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.396078431372549,
                  0.1019607843137255,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  1.0,
                  1.0,
                  1.0
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3568627450980392,
                  0.2784313725490196,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3568627450980392,
                  0.2784313725490196,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3568627450980392,
                  0.2784313725490196,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3568627450980392,
                  0.2784313725490196,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3568627450980392,
                  0.2784313725490196,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.396078431372549,
                  0.1019607843137255,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  1.0,
                  1.0,
                  1.0
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x13": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.396078431372549,
                  0.1019607843137255,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3568627450980392,
                  0.2784313725490196,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3568627450980392,
                  0.2784313725490196,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3568627450980392,
                  0.2784313725490196,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.396078431372549,
                  0.1019607843137255,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.2784313725490196,
                  0.1803921568627451,
                  0.5372549019607843
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x14": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.396078431372549,
                  0.1019607843137255,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3568627450980392,
                  0.2784313725490196,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3568627450980392,
                  0.2784313725490196,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.396078431372549,
                  0.1019607843137255,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.9647058823529412,
                  0.6470588235294118,
                  0.3647058823529412
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x15": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  1.0,
                  0.792156862745098,
                  0.2509803921568628
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.415686274509804,
                  0.1176470588235294,
                  0.2745098039215686
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  1.0,
                  0.792156862745098,
                  0.2509803921568628
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  1.0,
                  0.792156862745098,
                  0.2509803921568628
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  1.0,
                  0.792156862745098,
                  0.2509803921568628
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  1.0,
                  0.792156862745098,
                  0.2509803921568628
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.415686274509804,
                  0.1176470588235294,
                  0.2745098039215686
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  1.0,
                  0.792156862745098,
                  0.2509803921568628
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  1.0,
                  0.792156862745098,
                  0.2509803921568628
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  1.0,
                  0.792156862745098,
                  0.2509803921568628
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x16": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  1.0,
                  0.792156862745098,
                  0.2509803921568628
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  1.0,
                  0.792156862745098,
                  0.2509803921568628
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  1.0,
                  0.792156862745098,
                  0.2509803921568628
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  1.0,
                  0.792156862745098,
                  0.2509803921568628
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  1.0,
                  0.792156862745098,
                  0.2509803921568628
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  1.0,
                  0.792156862745098,
                  0.2509803921568628
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.6784313725490196,
                  0.3450980392156862,
                  0.3568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x17": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.6784313725490196,
                  0.3450980392156862,
                  0.3568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.6784313725490196,
                  0.3450980392156862,
                  0.3568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x18": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.6784313725490196,
                  0.3450980392156862,
                  0.3568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.7019607843137254,
                  0.4470588235294118,
                  0.4549019607843137
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.6784313725490196,
                  0.3450980392156862,
                  0.3568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x19": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3647058823529412,
                  0.2745098039215686,
                  0.5882352941176471
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1333333333333333,
                  0.0588235294117647,
                  0.3294117647058824
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x20": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4117647058823529,
                  0.396078431372549,
                  0.8
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.196078431372549,
                  0.1098039215686274,
                  0.4196078431372549
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x21": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x22": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x23": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x24": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x25": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.5568627450980392,
                  0.2509803921568628,
                  0.4117647058823529
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x26": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x27": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x28": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x29": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4196078431372549,
                  0.1411764705882353,
                  0.3215686274509804
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x30": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3098039215686274,
                  0.2509803921568628,
                  0.7294117647058823
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pixel_29x31": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [
            "100%c",
            "100%cm"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_1@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_2@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_3@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_4@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_5@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_6@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_7@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_8@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_9@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_10@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_11@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_12@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_13@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_14@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.1686274509803922,
                  0.0509803921568627,
                  0.2235294117647059
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_15@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_16@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_17@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_18@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.0862745098039216,
                  0.0,
                  0.1568627450980392
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_19@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_20@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_21@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_22@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_23@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.3372549019607844,
                  0.1058823529411765,
                  0.2588235294117648
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_24@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_25@rainbowpieui_pixelart.color_pixel": {
                // ?? (R,G,B,A)
                "color": [
                  0.4431372549019608,
                  0.1803921568627451,
                  0.6274509803921569
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_26@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_27@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_28@rainbowpieui_pixelart.transparent_pixel": { }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pixel_29@rainbowpieui_pixelart.transparent_pixel": { }
            }
          ]
        }
      }
    ]
  }
}

rainbowpie_ui_animations.json RainbowPie UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: rainbowpie_ui_animations.json
// 분류: RainbowPie UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_ui_animations",

  // ???/?? ??
  "container_panel_exit_animation_push": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_84df7492)",
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_v2_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_v2_transition_time",
    // 시작 값
    "from": [ "100%", "100%" ],
    // 끝 값
    "to": [ "50%", "50%" ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_3eb56fef",
        // 오버라이드 가능한 변수
        "$rainbowpie_ui_animation_container_v2_transition_time": 0.0
      }
    ]
  },

  // ???/?? ??
  "container_panel_exit_animation_pop": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_84df7492)",
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_v2_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_v2_transition_time",
    // 시작 값
    "from": [ "100%", "100%" ],
    // 끝 값
    "to": [ "50%", "50%" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_3eb56fef",
        // 오버라이드 가능한 변수
        "$rainbowpie_ui_animation_container_v2_transition_time": 0.0
      }
    ]
  },

  // ???/?? ??
  "container_panel_entrance_animation_push": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_84df7492)",
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_v2_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_v2_transition_time",
    // 시작 값
    "from": [ "50%", "50%" ],
    // 끝 값
    "to": [ "100%", "100%" ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "container_panel_entrance_animation_pop": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_84df7492)",
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_v2_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_v2_transition_time",
    // 시작 값
    "from": [ "50%", "50%" ],
    // 끝 값
    "to": [ "100%", "100%" ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "container_screen_exit_animation_push": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ "-3%", 0 ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_3eb56fef",
        // 오버라이드 가능한 변수
        "$rainbowpie_ui_animation_container_transition_time": 0.0
      }
    ]
  },

  // ???/?? ??
  "container_screen_exit_animation_pop": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, "6%" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_3eb56fef",
        // 오버라이드 가능한 변수
        "$rainbowpie_ui_animation_container_transition_time": 0.0
      }
    ]
  },

  // ???/?? ??
  "container_screen_entrance_animation_push": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_transition_time",
    // 시작 값
    "from": [ 0, "6%" ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "container_screen_entrance_animation_pop": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_transition_time",
    // 시작 값
    "from": [ "-3%", 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "screen_exit_animation_push_offset": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screen_ingame_anim2",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ "-15%", 0 ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "screen_exit_animation_pop_offset": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screen_ingame_anim1",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ "15%", 0 ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "screen_entrance_animation_push_offset": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screen_ingame_anim1",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ "15%", 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "screen_entrance_animation_pop_offset": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screen_ingame_anim2",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ "-15%", 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "screen_exit_animation_push_offset_ingame": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screen_ingame_anim2)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, "15%"],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "screen_exit_animation_pop_offset_ingame": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screen_ingame_anim1)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, "15%" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "screen_entrance_animation_push_offset_ingame": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screen_ingame_anim1)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "15%" ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "screen_entrance_animation_pop_offset_ingame": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screen_ingame_anim2)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "15%" ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "header_exit_animation_push_offset": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenheader_ingame_anim2",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ "-20%", 0 ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "header_exit_animation_pop_offset": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenheader_ingame_anim1",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ "20%", 0 ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "header_entrance_animation_push_offset": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenheader_ingame_anim1",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ "20%", 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "header_entrance_animation_pop_offset": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenheader_ingame_anim2",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ "-20%", 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "header_exit_animation_push_offset_ingame": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screenheader_ingame_anim2)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "header_exit_animation_pop_offset_ingame": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screenheader_ingame_anim1)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "header_entrance_animation_push_offset_ingame": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screenheader_ingame_anim1)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "header_entrance_animation_pop_offset_ingame": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screenheader_ingame_anim2)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "header_exit_animation_push_offset_both": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenheader_ingame_anim2",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "header_exit_animation_pop_offset_both": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenheader_ingame_anim1",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "header_entrance_animation_push_offset_both": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenheader_ingame_anim1",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "header_entrance_animation_pop_offset_both": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenheader_ingame_anim2",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "header_exit_animation_push_offset_both_ingame": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screenheader_ingame_anim2)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, -24 ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "header_exit_animation_pop_offset_both_ingame": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screenheader_ingame_anim1)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, -24 ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "header_entrance_animation_push_offset_both_ingame": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screenheader_ingame_anim1)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, -24 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "header_entrance_animation_pop_offset_both_ingame": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screenheader_ingame_anim2)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, -24 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // Header Background Animations

  "header_background_exit_animation_push_offset1": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenheader_ingame_anim2",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 20px" ],
    // 끝 값
    "to": [ 0, "-100% + 20px" ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "header_background_exit_animation_push_offset2": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenheader_ingame_anim2",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 20px" ],
    // 끝 값
    "to": [ 0, "100% - 20px" ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "header_background_exit_animation_pop_offset1": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenheader_ingame_anim1",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 20px" ],
    // 끝 값
    "to": [ 0, "-100% + 20px" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "header_background_exit_animation_pop_offset2": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenheader_ingame_anim1",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 20px" ],
    // 끝 값
    "to": [ 0, "100% - 20px" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "header_background_entrance_animation_push_offset1": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenheader_ingame_anim1",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 20px" ],
    // 끝 값
    "to": [ 0, "-100% + 20px" ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "header_background_entrance_animation_push_offset2": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenheader_ingame_anim1",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 20px" ],
    // 끝 값
    "to": [ 0, "100% - 20px" ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "header_background_entrance_animation_pop_offset1": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenheader_ingame_anim2",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 20px" ],
    // 끝 값
    "to": [ 0, "-100% + 20px" ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "header_background_entrance_animation_pop_offset2": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenheader_ingame_anim2",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 20px" ],
    // 끝 값
    "to": [ 0, "100% - 20px" ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "header_background_exit_animation_push_offset_ingame1": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screenheader_ingame_anim2)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 20px" ],
    // 끝 값
    "to": [ 0, "-100% - 4px" ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "header_background_exit_animation_push_offset_ingame2": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screenheader_ingame_anim2)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 20px" ],
    // 끝 값
    "to": [ 0, "100% + 4px" ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "header_background_exit_animation_pop_offset_ingame1": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screenheader_ingame_anim1)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 20px" ],
    // 끝 값
    "to": [ 0, "-100% - 4px" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "header_background_exit_animation_pop_offset_ingame2": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screenheader_ingame_anim1)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 20px" ],
    // 끝 값
    "to": [ 0, "100% + 4px" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "header_background_entrance_animation_push_offset_ingame1": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screenheader_ingame_anim1)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% - 4px" ],
    // 끝 값
    "to": [ 0, "-100% + 20px" ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "header_background_entrance_animation_push_offset_ingame2": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screenheader_ingame_anim1)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% + 4px" ],
    // 끝 값
    "to": [ 0, "100% - 20px" ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "header_background_entrance_animation_pop_offset_ingame1": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screenheader_ingame_anim2)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% - 4px" ],
    // 끝 값
    "to": [ 0, "-100% + 20px" ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "header_background_entrance_animation_pop_offset_ingame2": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_screenheader_ingame_anim2)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% + 4px" ],
    // 끝 값
    "to": [ 0, "100% - 20px" ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },


  // 다른 템플릿을 가져와서 확장(상속)
  "background_entrance_animation_push_fade_long@rainbowpie_ui_animations.background_entrance_animation_push_fade": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_background_longer_anim",
    // 시작 값
    "from": 0.0
  },

  // ???/?? ??
  "background_entrance_animation_push_fade": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_background_longer_anim)",
    // 투명도 변화
    "anim_type": "alpha",
    // 걸리는 시간(초)
    "duration": "$transition_time_pop",
    // 시작 값
    "from": 1.0,
    // 끝 값
    "to": 0.0,
    // ?? ??
    "play_event": "screen.entrance_push"
  },

  // ???/?? ??
  "background_entrance_animation_pop_fade": {
    // 투명도 변화
    "anim_type": "alpha",
    // 걸리는 시간(초)
    "duration": "$transition_time_pop",
    // 시작 값
    "from": 1.0,
    // 끝 값
    "to": 0.0,
    // ?? ??
    "play_event": "screen.entrance_pop"
  },

  // ???/?? ??
  "background_exit_animation_push_fade": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "out_cubic",
    // 걸리는 시간(초)
    "duration": "$loading_bar_transition",
    // 시작 값
    "from": 1.0,
    // 끝 값
    "to": 1.0,
    // ?? ??
    "play_event": "screen.exit_push"
  },

  // ???/?? ??
  "background_exit_animation_pop_fade": {
    // 투명도 변화
    "anim_type": "alpha",
    // 걸리는 시간(초)
    "duration": "$transition_time_pop",
    // 시작 값
    "from": 1.0,
    // 끝 값
    "to": 0.0,
    // ?? ??
    "play_event": "screen.exit_pop"
  }
}

rainbowpie_ui_controls.json RainbowPie UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: rainbowpie_ui_controls.json
// 분류: RainbowPie UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_ui_controls",

  // ???/?? ??
  "scroll_background_image": {
    // 이미지 표시
    "type": "image",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 사용할 이미지 경로
    "texture": "textures/ui/recipe_book_pane_bg"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "scroll_indent_image@common.scroll_indent_image": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_scrollbar_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_scrollbar_background_alpha"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "scrollbar_box_image@common.scrollbar_box_image": {
    // 가로/세로 크기
    "size": [ 3, "100%" ],
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_scrollbar_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_scrollbar_alpha"
  },

  // ???/?? ??
  "RainbowPieHeaderMask": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // ?? ????
    "clips_children": true,
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 완전히 제거(공간도 없음)
    "ignored": "($is_pregame)",
    // 오버라이드 가능한 변수
    "$BlurLayer|default": -50,
    // 겹치는 순서(숫자 클수록 위)
    "layer": "$BlurLayer",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "mask_layer@mintui_background.background_mask": {
          // 오버라이드 가능한 변수
          "$background_offset": [ 0, "-100% + 20px" ],
          // 오버라이드 가능한 변수
          "$background_children_offset": [ 0, "100% - 20px" ],
          // 오버라이드 가능한 변수
          "$background_layer": 2,
          // 오버라이드 가능한 변수
          "$background_anims": "$HeaderBlurAnims",
          // 오버라이드 가능한 변수
          "$HeaderBlurAnims|default": [
            "@rainbowpie_ui_animations.header_background_exit_animation_push_offset1",
            "@rainbowpie_ui_animations.header_background_exit_animation_pop_offset1",
            "@rainbowpie_ui_animations.header_background_entrance_animation_push_offset1",
            "@rainbowpie_ui_animations.header_background_entrance_animation_pop_offset1",
            "@rainbowpie_ui_animations.header_background_exit_animation_push_offset_ingame1",
            "@rainbowpie_ui_animations.header_background_exit_animation_pop_offset_ingame1",
            "@rainbowpie_ui_animations.header_background_entrance_animation_push_offset_ingame1",
            "@rainbowpie_ui_animations.header_background_entrance_animation_pop_offset_ingame1"
          ],
          // 오버라이드 가능한 변수
          "$background_children_anims": "$HeaderBlur2Anims",
          // 오버라이드 가능한 변수
          "$HeaderBlur2Anims|default": [
            "@rainbowpie_ui_animations.header_background_exit_animation_push_offset2",
            "@rainbowpie_ui_animations.header_background_exit_animation_pop_offset2",
            "@rainbowpie_ui_animations.header_background_entrance_animation_push_offset2",
            "@rainbowpie_ui_animations.header_background_entrance_animation_pop_offset2",
            "@rainbowpie_ui_animations.header_background_exit_animation_push_offset_ingame2",
            "@rainbowpie_ui_animations.header_background_exit_animation_pop_offset_ingame2",
            "@rainbowpie_ui_animations.header_background_entrance_animation_push_offset_ingame2",
            "@rainbowpie_ui_animations.header_background_entrance_animation_pop_offset_ingame2"
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "RainbowPieHeaderBlur": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // ?? ????
    "clips_children": true,
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $is_pregame)",
    // 보이기/숨기기(공간 유지)
    "visible": "$rainbowpie_ui_feature_background_blur",
    // 오버라이드 가능한 변수
    "$BlurLayer|default": 10,
    // 겹치는 순서(숫자 클수록 위)
    "layer": "$BlurLayer",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "blur_layer@mintui_background.background_blur": {
          // 오버라이드 가능한 변수
          "$background_offset": [ 0, "-100% + 20px" ],
          // 오버라이드 가능한 변수
          "$background_children_offset": [ 0, "100% - 20px" ],
          // 오버라이드 가능한 변수
          "$background_layer": 2,
          // 오버라이드 가능한 변수
          "$background_anims": "$HeaderBlurAnims",
          // 오버라이드 가능한 변수
          "$HeaderBlurAnims|default": [
            "@rainbowpie_ui_animations.header_background_exit_animation_push_offset1",
            "@rainbowpie_ui_animations.header_background_exit_animation_pop_offset1",
            "@rainbowpie_ui_animations.header_background_entrance_animation_push_offset1",
            "@rainbowpie_ui_animations.header_background_entrance_animation_pop_offset1",
            "@rainbowpie_ui_animations.header_background_exit_animation_push_offset_ingame1",
            "@rainbowpie_ui_animations.header_background_exit_animation_pop_offset_ingame1",
            "@rainbowpie_ui_animations.header_background_entrance_animation_push_offset_ingame1",
            "@rainbowpie_ui_animations.header_background_entrance_animation_pop_offset_ingame1"
          ],
          // 오버라이드 가능한 변수
          "$background_children_anims": "$HeaderBlur2Anims",
          // 오버라이드 가능한 변수
          "$HeaderBlur2Anims|default": [
            "@rainbowpie_ui_animations.header_background_exit_animation_push_offset2",
            "@rainbowpie_ui_animations.header_background_exit_animation_pop_offset2",
            "@rainbowpie_ui_animations.header_background_entrance_animation_push_offset2",
            "@rainbowpie_ui_animations.header_background_entrance_animation_pop_offset2",
            "@rainbowpie_ui_animations.header_background_exit_animation_push_offset_ingame2",
            "@rainbowpie_ui_animations.header_background_exit_animation_pop_offset_ingame2",
            "@rainbowpie_ui_animations.header_background_entrance_animation_push_offset_ingame2",
            "@rainbowpie_ui_animations.header_background_entrance_animation_pop_offset_ingame2"
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_uioverride_back_button@common.back_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_controls.rainbowpie_uioverride_borderless_form_fitting_button_panel",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpie_ui_controls.back_button_content",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_backbutton_text_color|default": "$rainbowpie_ui_theme_topbar_text_color",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [],
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$touch",
        // 오버라이드 가능한 변수
        "$size": [ "100%c + 6px", "100%c + 6px" ],
        // 오버라이드 가능한 변수
        "$button_panel_offset": [ 3, 3 ]
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "(not $touch)",
        // 오버라이드 가능한 변수
        "$size": [ "100%c", "100%c" ]
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_uioverride_borderless_form_fitting_button_panel@common_buttons.borderless_form_fitting_button_panel": {
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "($button_image = 'common_buttons.background_button_image')",
        // 오버라이드 가능한 변수
        "$button_image": "rainbowpie_ui_controls.background_button_image"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "$button_image@$button_image": {
          // 가로/세로 크기
          "size": [ "100%c + 4px", "100%c" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "button_content": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%c", "100%c" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "$button_type_panel@$button_type_panel": {
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 3 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 3
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "background_button_image": {
    // 이미지 표시
    "type": "image",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 사용할 이미지 경로
    "texture": "textures/ui/button_borderless_imagelesshoverbg",
    // ???
    "alpha": 0.3
  },

  // ???/?? ??
  "back_button_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100%c", 16 ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 2 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "chevron_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "left_chevron@common.chevron_image": {
                // 사용할 이미지 경로
                "texture": "textures/ui/chevron_left",
                // 기준점에서 이동하는 거리
                "offset": [ 0, -1 ],
                // ?? (R,G,B,A)
                "color": "$rainbowpie_localui_backbutton_text_color"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 4, "100%" ]
        }
      },
      {
        // ???/?? ??
        "label_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "label": {
                // 글자 표시
                "type": "label",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 보여줄 글자
                "text": "$button_text",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_localui_backbutton_text_color",
                // ??
                "font_type": "$rainbowpie_ui_theme_global_font_name",
                // ?? ?? ?
                "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
                // ?? ?? ?
                "font_size": "$button_font_size",
                // 오버라이드 가능한 변수
                "$button_font_scale_factor|default": 1.0,
                // ?? ?? ??
                "font_scale_factor": "$button_font_scale_factor",
                // 오버라이드 가능한 변수
                "$button_font_size|default": "normal",
                // 기준점에서 이동하는 거리
                "offset": [ 0, -2 ],
                // 오버라이드 가능한 변수
                "$anchor|default": "center",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$anchor",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$anchor",
                // ?? ??
                "shadow": false,
                // 오버라이드 가능한 변수
                "$button_text_size|default": [ "default", "default" ],
                // 가로/세로 크기
                "size": "$button_text_size",
                // 오버라이드 가능한 변수
                "$button_text_max_size|default": [ "100%", 10 ], // Per design buttons are single line text only
                // ?? ?? ?
                "max_size": "$button_text_max_size",
                // 오버라이드 가능한 변수
                "$text_alignment|default": "center",
                // ?? ??
                "text_alignment": "$text_alignment",
                // 오버라이드 가능한 변수
                "$tts_section_header|default": "",
                // ?? ??
                "tts_section_header": "$tts_section_header",
                // 게임 값과 연결하는 규칙 목록
                "bindings": "$rainbowpie_localui_backbutton_title_bindings",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_backbutton_title_bindings|default": [
                  {
                    // 바인딩 종류(변수로 관리되는 경우도 있음)
                    "binding_type": "$button_text_binding_type",
                    // ?? ???
                    "binding_condition": "$button_binding_condition",
                    // 목록 이름
                    "binding_collection_name": "$button_text_grid_collection_name",
                    // 가져올 값 이름
                    "binding_name": "$button_text",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "$button_text"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "back_content_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "left_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "left_middle",
    // 오버라이드 가능한 변수
    "$back_button_text|default": "",
    // 오버라이드 가능한 변수
    "$back_button_text_binding_type|default": "none",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenheader_title_bindings|default": [],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "back_button@rainbowpie_ui_controls.rainbowpie_uioverride_back_button": {
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 오버라이드 가능한 변수
          "$button_text_binding_type": "$back_button_text_binding_type",
          // 오버라이드 가능한 변수
          "$button_text": "$back_button_text",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_backbutton_title_bindings": "$rainbowpie_localui_screenheader_title_bindings"
        }
      }
    ]
  }
}

rainbowpie_ui_inventory_and_container.json RainbowPie UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: rainbowpie_ui_inventory_and_container.json
// 분류: RainbowPie UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_ui_inventory_and_container",

  // ???/?? ??
  "cell_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "cell_image@rainbowpie_ui_common.cell_image": {}
      },
      {
        // ???/?? ??
        "fastplace_slot_panel": {
          // 마우스/커서 따라다니는 패널
          "type": "input_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // ?? ??
          "consume_hover_events": "$touch",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 22,
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 완전히 제거(공간도 없음)
          "ignored": "((not $rainbowpie_ui_flag_29bdcf8a) or (not $rainbowpie_ui_flag_84df7492))",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "$item_collection_name"
            },
            {
              // 가져올 값 이름
              "binding_name": "#item_id_aux",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$item_collection_name"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "inventoryui_fastplace",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#inventoryui_fastplace_enabled"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((not (#item_id_aux = -1)) and #inventoryui_fastplace_enabled)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ],
          // 입력 키/버튼과 동작 연결
          "button_mappings": [
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_select",
              // 어떤 동작을 실행할지
              "to_button_id": "button.container_auto_place",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_ok",
              // 어떤 동작을 실행할지
              "to_button_id": "button.container_auto_place",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "result_slot_border": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/focus_border_white",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // ?? (R,G,B,A)
          "color": [ 0.0, 1.0, 0.0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 완전히 제거(공간도 없음)
          "ignored": "((not $rainbowpie_ui_flag_d6bb54d8) or (not $rainbowpie_ui_flag_84df7492))",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#hover_text",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$item_collection_name"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('\"' + #hover_text - '\n' - '§0' - '§1' - '§2' - '§3' - '§4' - '§5' - '§6' - '§7' - '§8' - '§9' - '§a' - '§b' - '§c' - '§d' - '§e' - '§f' - '§g' - '§h' - '§i' - '§j' - '§k' - '§l' - '§m' - '§n' - '§o' - '§p' - '§q' - '§r' - '§s' - '§t' - '§u' - '§v' - '§w' - '§x' - '§y' - '§z' + '\"')",
              // 결과가 들어갈 속성
              "target_property_name": "#formatted_name"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "inventoryui_search_text_box_display_text",
              // 계산식/참조 값
              "source_property_name": "#item_name",
              // 결과가 들어갈 속성
              "target_property_name": "#query_text"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not ((#formatted_name - #query_text) = #formatted_name))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "container_item@common.container_item": {
    // 가로/세로 크기
    "size": [ "100%y", "100%" ],
    // 오버라이드 가능한 변수
    "$collection_index|default": -1,
    // 오버라이드 가능한 변수
    "$cell_image_size|default": [ "100%y", "100%" ],
    // 오버라이드 가능한 변수
    "$item_renderer_panel_size|default": [ "100%y", "100%" ],
    // 오버라이드 가능한 변수
    "$item_renderer_size|default": [ "100%y", "88.89%" ],
    // 오버라이드 가능한 변수
    "$background_images|default": "rainbowpie_ui_inventory_and_container.cell_panel"
  },

  // ???/?? ??
  "container_item_stack": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 목록 이름
    "collection_name": "$item_collection_name",

    // 오버라이드 가능한 변수
    "$item_collection_name|default": "",
    // 오버라이드 가능한 변수
    "$collection_index_start|default": 0,

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_item_0@rainbowpie_ui_inventory_and_container.container_item": {
          // 오버라이드 가능한 변수
          "$collection_index": "($collection_index_start + 0)",
          // ?? ??
          "collection_index": "$collection_index"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_item_1@rainbowpie_ui_inventory_and_container.container_item": {
          // 오버라이드 가능한 변수
          "$collection_index": "($collection_index_start + 1)",
          // ?? ??
          "collection_index": "$collection_index"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_item_2@rainbowpie_ui_inventory_and_container.container_item": {
          // 오버라이드 가능한 변수
          "$collection_index": "($collection_index_start + 2)",
          // ?? ??
          "collection_index": "$collection_index"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_item_3@rainbowpie_ui_inventory_and_container.container_item": {
          // 오버라이드 가능한 변수
          "$collection_index": "($collection_index_start + 3)",
          // ?? ??
          "collection_index": "$collection_index"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_item_4@rainbowpie_ui_inventory_and_container.container_item": {
          // 오버라이드 가능한 변수
          "$collection_index": "($collection_index_start + 4)",
          // ?? ??
          "collection_index": "$collection_index"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_item_5@rainbowpie_ui_inventory_and_container.container_item": {
          // 오버라이드 가능한 변수
          "$collection_index": "($collection_index_start + 5)",
          // ?? ??
          "collection_index": "$collection_index"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_item_6@rainbowpie_ui_inventory_and_container.container_item": {
          // 오버라이드 가능한 변수
          "$collection_index": "($collection_index_start + 6)",
          // ?? ??
          "collection_index": "$collection_index"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_item_7@rainbowpie_ui_inventory_and_container.container_item": {
          // 오버라이드 가능한 변수
          "$collection_index": "($collection_index_start + 7)",
          // ?? ??
          "collection_index": "$collection_index"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_item_8@rainbowpie_ui_inventory_and_container.container_item": {
          // 오버라이드 가능한 변수
          "$collection_index": "($collection_index_start + 8)",
          // ?? ??
          "collection_index": "$collection_index"
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "hotbar_grid_template@rainbowpie_ui_inventory_and_container.container_item_stack": {
    // 오버라이드 가능한 변수
    "$item_collection_name": "hotbar_items",
    // 오버라이드 가능한 변수
    "$collection_index_start": 0
  },

  // ???/?? ??
  "inventory_panel_bottom_half": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "1@rainbowpie_ui_inventory_and_container.container_item_stack": {
          // 가로/세로 크기
          "size": [ "100%", "33.33333333333333%" ],
          // 오버라이드 가능한 변수
          "$item_collection_name": "inventory_items",
          // 오버라이드 가능한 변수
          "$collection_index_start": 0
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "2@rainbowpie_ui_inventory_and_container.container_item_stack": {
          // 가로/세로 크기
          "size": [ "100%", "33.33333333333333%" ],
          // 오버라이드 가능한 변수
          "$item_collection_name": "inventory_items",
          // 오버라이드 가능한 변수
          "$collection_index_start": 9
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "3@rainbowpie_ui_inventory_and_container.container_item_stack": {
          // 가로/세로 크기
          "size": [ "100%", "33.33333333333333%" ],
          // 오버라이드 가능한 변수
          "$item_collection_name": "inventory_items",
          // 오버라이드 가능한 변수
          "$collection_index_start": 18
        }
      }
    ]
  }
}

rainbowpie_ui_module_list.json RainbowPie UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: rainbowpie_ui_module_list.json
// 분류: RainbowPie UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_ui_module_list",

  // ???/?? ??
  "module_variable_display_button_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "control_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100% - 4px", "100%cm" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "button_text@rainbowpie_ui_common.text_label": {
                // 가로/세로 크기
                "size": [ "default", 10 ],
                // ?? ?? ?
                "max_size": [ "100% - 10px", 10 ],
                // 보여줄 글자
                "text": "rainbowpie.ui.module.moduleVariables",
                // ?? (R,G,B,A)
                "color": "$text_color",
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            },
            {
              // ???/?? ??
              "middle_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "fill", 0 ]
              }
            },
            {
              // ???/?? ??
              "chevron_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 10, 10 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "chevron_down": {
                      // 이미지 표시
                      "type": "image",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 사용할 이미지 경로
                      "texture": "textures/ui/chevron_white_down",
                      // ?? (R,G,B,A)
                      "color": "$text_color",
                      // 가로/세로 크기
                      "size": [ 8, 8 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",
                      // 보이기/숨기기(공간 유지)
                      "visible": false,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "$toggle_view_binding_name",
                          // 계산식/참조 값
                          "source_property_name": "(not #toggle_state)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "chevron_up": {
                      // 이미지 표시
                      "type": "image",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 사용할 이미지 경로
                      "texture": "textures/ui/chevron_white_up",
                      // ?? (R,G,B,A)
                      "color": "$text_color",
                      // 가로/세로 크기
                      "size": [ 8, 8 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",
                      // 보이기/숨기기(공간 유지)
                      "visible": false,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "$toggle_view_binding_name",
                          // 계산식/참조 값
                          "source_property_name": "#toggle_state",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "module_variable_display_toggle@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpie_ui_module_list.module_variable_display_button_content",

    // 오버라이드 가능한 변수
    "$button_type_panel": "common_buttons.new_ui_binding_button_label",
    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "VARIABLES",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": false,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_settings_module_variable_display_toggle",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 0,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  },

  // ???/?? ??
  "module_variable_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c + 4px" ],
    // 오버라이드 가능한 변수
    "$variable_name|default": false,
    // 오버라이드 가능한 변수
    "$variable_name_display|default": "variable_displayname",
    // 오버라이드 가능한 변수
    "$variable_description|default": "",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "control_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "top_driven@rainbowpieui_settings_common.driven": {}
            },
            {
              // ???/?? ??
              "padding_0": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 0, 2 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "label_1@rainbowpie_ui_common.text_label": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 가로/세로 크기
                "size": [ "100%", "default" ],
                // 오버라이드 가능한 변수
                "$value_color_format_symbol": "f",
                // 오버라이드 가능한 변수
                "$value_string_formatted": "('\"' + $variable_name + '\"')",
                // 보여줄 글자
                "text": "('§e$§f' + $variable_name_display + ' = ' + '§' + $value_color_format_symbol + $value_string_formatted)",
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "($value_string_formatted = 'true')",
                    // 오버라이드 가능한 변수
                    "$value_color_format_symbol": "a"
                  },
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "($value_string_formatted = 'false')",
                    // 오버라이드 가능한 변수
                    "$value_color_format_symbol": "c"
                  },
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "(('1' + $variable_name + 1) > 10)",
                    // 오버라이드 가능한 변수
                    "$value_color_format_symbol": "e"
                  },
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "($variable_name + '1' - 1 < -10)",
                    // 오버라이드 가능한 변수
                    "$value_color_format_symbol": "e"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "label_2@rainbowpie_ui_common.text_label": {
                // 완전히 제거(공간도 없음)
                "ignored": "($variable_description = '')",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 가로/세로 크기
                "size": [ "100%", "default" ],
                // 보여줄 글자
                "text": "$variable_description",
                // ?? (R,G,B,A)
                "color": [ 0.776, 0.776, 0.776 ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "module_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c + 2px" ],
    // 오버라이드 가능한 변수
    "$module_icon_texture|default": "($rainbowpie_ui_path_home + '/icon/module')",
    // 오버라이드 가능한 변수
    "$module_name|default": "module_name",
    // 오버라이드 가능한 변수
    "$module_version|default": "module_version",
    // 오버라이드 가능한 변수
    "$module_author|default": "module_author",
    // 오버라이드 가능한 변수
    "$module_description|default": "module_description",
    // 오버라이드 가능한 변수
    "$module_state_check|default": false,
    // 오버라이드 가능한 변수
    "$module_max_engine_version|default": "999999",
    // 오버라이드 가능한 변수
    "$module_max_engine_patch_version|default": "999999",
    // 오버라이드 가능한 변수
    "$module_min_engine_version|default": "0",
    // 오버라이드 가능한 변수
    "$module_min_engine_patch_version|default": "0",
    // 오버라이드 가능한 변수
    "$module_variable_display|default": false,
    // 오버라이드 가능한 변수
    "$module_variables|default": [],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@rainbowpie_ui_common.text_background": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 가로/세로 크기
          "size": [ "100%", "100%cm" ],
          // ?? ?? ?
          "min_size": [ "100%", 50 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "icon_image": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ 50, 50 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 사용할 이미지 경로
                "texture": "$module_icon_texture"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "variable_display_button@rainbowpie_ui_module_list.module_variable_display_toggle": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $module_variable_display)",
                // 가로/세로 크기
                "size": [ 60, 20 ],
                // 기준점에서 이동하는 거리
                "offset": [ -2, 28 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 20,
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_right",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": 1000,
                // 오버라이드 가능한 변수
                "$toggle_view_binding_name": "('module_variable_display_' + $module_name)"
              }
            },
            {
              // ???/?? ??
              "control_stack_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 가로/세로 크기
                "size": [ "100% - 114px", "100%c" ],
                // 기준점에서 이동하는 거리
                "offset": [ 52, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "padding_0": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 0, 1 ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "label_1@rainbowpie_ui_common.text_label": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 가로/세로 크기
                      "size": [ "100%", 15 ],
                      // 보여줄 글자
                      "text": "('\"' + $module_name + ' [' + $module_state + ']' + $module_update_state + '\"')",
                      // ?? ?? ??
                      "font_scale_factor": 1.5,
                      // 오버라이드 가능한 변수
                      "$module_state|default": "§cINACTIVE§r",
                      // 오버라이드 가능한 변수
                      "$module_update_state|default": "",
                      // 조건에 따라 변수 값을 바꾸기
                      "variables": [
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$module_state_check",
                          // 오버라이드 가능한 변수
                          "$module_state": "§aACTIVE§r"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "(($module_max_engine_version < $rainbowpieui_engine_version) or ($module_max_engine_patch_version < $rainbowpieui_patch_version))",
                          // 오버라이드 가능한 변수
                          "$module_update_state": " [§eNEEDUPDATE§r]"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "(($module_min_engine_version > $rainbowpieui_engine_version) or ($module_min_engine_patch_version > $rainbowpieui_patch_version))",
                          // 오버라이드 가능한 변수
                          "$module_update_state": " [§cUNSUPPORTED§r]"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "padding_1": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 0, 1 ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "label_2@rainbowpie_ui_common.text_label": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 가로/세로 크기
                      "size": [ "100%", 10 ],
                      // 보여줄 글자
                      "text": "('\"' + $module_version + ', §o§l' + $module_author + '\"')"
                    }
                  },
                  {
                    // ???/?? ??
                    "padding_2": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 0, 1 ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "label_3@rainbowpie_ui_common.text_label": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 가로/세로 크기
                      "size": [ "100% - 44px", "default" ],
                      // 보여줄 글자
                      "text": "('\"' + $module_description + '\"')"
                    }
                  },
                  {
                    // ???/?? ??
                    "padding_3": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 0, 1 ]
                    }
                  },
                  {
                    // ???/?? ??
                    "padding_4": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 0, 4 ],
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $module_variable_display)",
                      // 보이기/숨기기(공간 유지)
                      "visible": false,
                      // 오버라이드 가능한 변수
                      "$toggle_view_binding_name": "('module_variable_display_' + $module_name)",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "$toggle_view_binding_name",
                          // 계산식/참조 값
                          "source_property_name": "#toggle_state",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "variable_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 가로/세로 크기
                      "size": [ "100%", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": "$module_variables",
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $module_variable_display)",
                      // 보이기/숨기기(공간 유지)
                      "visible": false,
                      // 오버라이드 가능한 변수
                      "$toggle_view_binding_name": "('module_variable_display_' + $module_name)",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "$toggle_view_binding_name",
                          // 계산식/참조 값
                          "source_property_name": "#toggle_state",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "module_list_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ]
  }
}

rainbowpie_ui_theme_preview.json RainbowPie UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: rainbowpie_ui_theme_preview.json
// 분류: RainbowPie UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_ui_theme_preview",

  // ???/?? ??
  "theme_preview": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "background_preview": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 230, "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background@mintui_background.background_fullscreen": {
                // 완전히 제거(공간도 없음)
                "ignored": false,
                // 오버라이드 가능한 변수
                "$background_layer": 1
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "blur_layer_top@mintui_background.background_blur": {
                // 오버라이드 가능한 변수
                "$background_ingame": true,
                // 오버라이드 가능한 변수
                "$background_offset": [ 0, "-100% + 10px" ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ 0, "100% - 10px" ],
                // 오버라이드 가능한 변수
                "$background_layer": 2
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "blur_layer_bottom@mintui_background.background_blur": {
                // 오버라이드 가능한 변수
                "$background_ingame": true,
                // 오버라이드 가능한 변수
                "$background_offset": [ 0, "100% - 6px" ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ 0, "-100% + 6px" ],
                // 오버라이드 가능한 변수
                "$background_layer": 2
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "title_image@rainbowpie_ui_common.title_text": {
                // 오버라이드 가능한 변수
                "$title_text_scale": 1.8,
                // 기준점에서 이동하는 거리
                "offset": [ 2, 8 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3
              }
            },
            {
              // ???/?? ??
              "default_fake_button_1": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ 60, 9 ],
                // 기준점에서 이동하는 거리
                "offset": [ 2, -20 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_button_background_default_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_button_background_default_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "mini_text_1@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "default", 6 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 보여줄 글자
                      "text": "Play",
                      // ?? ?? ??
                      "font_scale_factor": 0.6,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4,
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_button_text_default_color"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "hover_fake_button_2": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ 60, 9 ],
                // 기준점에서 이동하는 거리
                "offset": [ 2, -10 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_button_background_hover_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_button_background_hover_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "mini_text_1@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "default", 6 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 보여줄 글자
                      "text": "Settings",
                      // ?? ?? ??
                      "font_scale_factor": 0.6,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4,
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_button_text_hover_color"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "default_fake_button_3": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ 60, 9 ],
                // 기준점에서 이동하는 거리
                "offset": [ 2, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_button_background_default_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_button_background_default_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "mini_text_1@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "default", 6 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 보여줄 글자
                      "text": "Marketplace",
                      // ?? ?? ??
                      "font_scale_factor": 0.6,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4,
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_button_text_default_color"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "default_fake_button_4": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ 60, 9 ],
                // 기준점에서 이동하는 거리
                "offset": [ 2, 10 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_button_background_default_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_button_background_default_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "mini_text_1@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "default", 6 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 보여줄 글자
                      "text": "Music",
                      // ?? ?? ??
                      "font_scale_factor": 0.6,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4,
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_button_text_default_color"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "default_fake_button_5": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ 60, 9 ],
                // 기준점에서 이동하는 거리
                "offset": [ 2, 20 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_button_background_default_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_button_background_default_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "mini_text_1@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "default", 6 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 보여줄 글자
                      "text": "Achievements",
                      // ?? ?? ??
                      "font_scale_factor": 0.6,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4,
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_button_text_default_color"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "red_fake_button_6": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ 60, 9 ],
                // 기준점에서 이동하는 거리
                "offset": [ 2, 30 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // ?? (R,G,B,A)
                "color": [ 0.85098, 0.301961, 0.301961 ],
                // ???
                "alpha": 0.5,
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "mini_text_1@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "default", 6 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 보여줄 글자
                      "text": "Exit",
                      // ?? ?? ??
                      "font_scale_factor": 0.6,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4,
                      // ?? (R,G,B,A)
                      "color": [ 1.0, 1.0, 1.0 ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "top_panel": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100%", 10 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_topbar_background_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_topbar_background_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 6,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "mini_text_1@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "default", 6 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 2, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 보여줄 글자
                      "text": "Theme Preview",
                      // ?? ?? ??
                      "font_scale_factor": 0.6,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4,
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_topbar_text_color"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "bottom_panel": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100%", 6 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_text_background_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_text_background_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 6,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "mini_text_1@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "default", 6 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0.5, -0.5 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 보여줄 글자
                      "text": "Rainbow Pie UI Theme Preview",
                      // ?? ?? ??
                      "font_scale_factor": 0.6,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4,
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_text_text_color"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "mini_text_2@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "default", 6 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ -0.5, -0.5 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",
                      // 보여줄 글자
                      "text": "v1.19.70",
                      // ?? ?? ??
                      "font_scale_factor": 0.6,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4,
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_text_text_color"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

verified_pack.json RainbowPie UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: verified_pack.json
// 분류: RainbowPie UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_verified_pack",

  // 다른 템플릿을 가져와서 확장(상속)
  "verified_pack_list@rainbowpieui_manifest_validation.verified_pack_list_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_packverifiy_item": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "rainbowpie@rainbowpieui_manifest_validation.verified_pack_item": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_packverifiy_packuuid": "$mintui_pack_uuid",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_packverifiy_packname": "Rainbow Pie UI",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_packverifiy_packauther": "Sunny Pokie"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "old_rainbowpie@rainbowpieui_manifest_validation.verified_pack_item": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_packverifiy_packuuid": "2a6c2264-0401-4cd8-aad8-824fa7672084",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_packverifiy_packname": "Rainbow Pie UI (Old)",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_packverifiy_packauther": "MintCoolMC"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dabuui@rainbowpieui_manifest_validation.verified_pack_item": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_packverifiy_packuuid": "4d24c49f-6893-408d-88d7-99b8cea7dce3",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_packverifiy_packname": "护眼大补丸",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_packverifiy_packauther": "黑山大叔 橘猫sama"
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "verified_pack_description@rainbowpieui_manifest_validation.verified_pack_description_panel": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "rainbowpie@rainbowpieui_manifest_validation.verified_pack_description_item": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_packverifiy_packuuid": "$mintui_pack_uuid",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_packverifiy_packdesc": "Rainbow Pie UI\nAuthor: §bMintraspberry Cool §r(Aka. §dSunny Pokie§r)\nWebsite: §ehttps://mintraspberry.cool/rainbowpieui§r\nGitHub: §ehttps://github.com/MintCoolMC/MCBE_RainbowPieUI2§r\nSupport this project: §ehttps://mintraspberry.cool/donate§r"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "old_rainbowpie@rainbowpieui_manifest_validation.verified_pack_description_item": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_packverifiy_packuuid": "2a6c2264-0401-4cd8-aad8-824fa7672084",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_packverifiy_packdesc": "Rainbow Pie UI By Mintraspberry Cool\n§cDO NOT USE WITH NEW PACK!!!§r\nWebsite: §ehttps://mintraspberry.cool/rainbowpieui"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dabuui@rainbowpieui_manifest_validation.verified_pack_description_item": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_packverifiy_packuuid": "4d24c49f-6893-408d-88d7-99b8cea7dce3",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_packverifiy_packdesc": "§b护眼大补丸§r\nB站作者@黑山大叔 @橘猫sama\n§7(此资源包与Rainbow Pie UI互相兼容)§r\n§7(This resource pack is compatible with Rainbow Pie ​​UI)§r"
        }
      }
    ]
  }
}

common

rainbowpie_ui_button.json RainbowPie UI · common

필요한 부분만 참고해서 가져가세요.

// 예제: rainbowpie_ui_button.json
// 분류: RainbowPie UI / common
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_ui_button",

  // ???/?? ??
  "glint_border_base": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // ?? ????
    "clips_children": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_glint_size|default": [ 48, 48 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_glint_alpha|default": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_glint_layer|default": 1,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "glint_dot": {
          // 마우스/커서 따라다니는 패널
          "type": "input_panel",
          // 가로/세로 크기
          "size": "$rainbowpie_localui_glint_size",
          // 기준점에서 이동하는 거리
          "offset": [ -1024, -1024 ],
          // ?? ??
          "consume_hover_events": false,
					// ?? ??
					"follows_cursor": true,
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_99d9851a)",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "glint_texture": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 사용할 이미지 경로
                "texture": "($rainbowpie_ui_path_home + '/glint')",
                // ???
                "alpha": "$rainbowpie_localui_glint_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": "$rainbowpie_localui_glint_layer"
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "rainbowpie_ui_button_default": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",

    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_default_color|default": "$rainbowpie_ui_theme_button_text_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_hover_color|default": "$rainbowpie_ui_theme_button_text_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_pressed_color|default": "$rainbowpie_ui_theme_button_text_pressed_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_locked_color|default": "$rainbowpie_ui_theme_button_text_locked_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color|default": "$rainbowpie_ui_theme_button_background_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_color|default": "$rainbowpie_ui_theme_button_background_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_color|default": "$rainbowpie_ui_theme_button_background_pressed_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_color|default": "$rainbowpie_ui_theme_button_background_locked_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha|default": "$rainbowpie_ui_theme_button_background_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_alpha|default": "$rainbowpie_ui_theme_button_background_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_alpha|default": "$rainbowpie_ui_theme_button_background_pressed_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_alpha|default": "$rainbowpie_ui_theme_button_background_locked_alpha",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_offset|default": "$rainbowpie_ui_theme_button_default_offset",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_offset|default": "$rainbowpie_ui_theme_button_hover_offset",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_offset|default": "$rainbowpie_ui_theme_button_pressed_offset",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_offset|default": "$rainbowpie_ui_theme_button_locked_offset",

    // Vanilla Variables
    "$button_image_visible|default": true,
    // 오버라이드 가능한 변수
    "$button_image_size|default": [ "100% - 1px", "100% - 1px" ],

    // 오버라이드 가능한 변수
    "$default_state|default": false,
    // 오버라이드 가능한 변수
    "$hover_state|default": false,
    // 오버라이드 가능한 변수
    "$pressed_state|default": false,
    // 오버라이드 가능한 변수
    "$locked_state|default": false,

    // Rainbow Pie UI Default Variables
    "$rainbowpie_localui_button_both_offset|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_color|default": [],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_color|default": [],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_alpha|default": 1.0,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_offset|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_panel_size|default": [ "default", "default" ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_border_enabled|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_enabled|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text|default": "HoverText",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text_bindings|default": [],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text_size|default": [ "100%c + 8px", "100%c + 5px" ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text_offset|default": [ 10, -10 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text_anchor|default": "top_left",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_border_layer|default": 50,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_border_always_visible|default": false,

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hover@common.focus_border_white": {
          // 가로/세로 크기
          "size": "$button_image_size",
          // 완전히 제거(공간도 없음)
          "ignored": "(((not $rainbowpie_localui_button_border_enabled) or (not $hover_state)) and (not $rainbowpie_localui_button_hover_border_always_visible))",
          // ???
          "alpha": 0.3,
          // 겹치는 순서(숫자 클수록 위)
          "layer": "$rainbowpie_localui_button_hover_border_layer"
        }
      },
      {
        // ???/?? ??
        "button_border_glint": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$button_image_size",
          // 완전히 제거(공간도 없음)
          "ignored": "(((not $rainbowpie_localui_button_border_enabled) and (not $rainbowpie_localui_button_hover_border_always_visible)) or (not $rainbowpie_ui_flag_99d9851a))",
          // 겹치는 순서(숫자 클수록 위)
          "layer": "$rainbowpie_localui_button_hover_border_layer",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hover@rainbowpie_ui_button.glint_border_base": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_glint_size": [ 72, 72 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_glint_alpha": 0.25,
                // 완전히 제거(공간도 없음)
                "ignored": "(not $hover_state)",
                // 가로/세로 크기
                "size": [ "100% - 2px", "100% - 2px" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "center",
                // 겹치는 순서(숫자 클수록 위)
                "layer": "($rainbowpie_localui_button_hover_border_layer - ($rainbowpie_localui_button_hover_border_layer * 2))"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "top@rainbowpie_ui_button.glint_border_base": {
                // 가로/세로 크기
                "size": [ "100% - 2px", 1 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "top_middle"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "bottom@rainbowpie_ui_button.glint_border_base": {
                // 가로/세로 크기
                "size": [ "100% - 2px", 1 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "bottom_middle"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "left@rainbowpie_ui_button.glint_border_base": {
                // 가로/세로 크기
                "size": [ 1, "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "left_middle"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "right@rainbowpie_ui_button.glint_border_base": {
                // 가로/세로 크기
                "size": [ 1, "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "right_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "right_middle"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "button_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$rainbowpie_localui_button_panel_size",

          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$default_state",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_button_text_color": "$rainbowpie_localui_button_text_default_color",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_button_color": "$rainbowpie_localui_button_default_color",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_button_alpha": "$rainbowpie_localui_button_default_alpha",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_button_offset": "$rainbowpie_localui_button_default_offset"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "$hover_state",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_button_text_color": "$rainbowpie_localui_button_text_hover_color",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_button_color": "$rainbowpie_localui_button_hover_color",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_button_alpha": "$rainbowpie_localui_button_hover_alpha",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_button_offset": "$rainbowpie_localui_button_hover_offset"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "$pressed_state",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_button_text_color": "$rainbowpie_localui_button_text_pressed_color",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_button_color": "$rainbowpie_localui_button_pressed_color",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_button_alpha": "$rainbowpie_localui_button_pressed_alpha",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_button_offset": "$rainbowpie_localui_button_pressed_offset"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "$locked_state",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_button_text_color": "$rainbowpie_localui_button_text_locked_color",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_button_color": "$rainbowpie_localui_button_locked_color",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_button_alpha": "$rainbowpie_localui_button_locked_alpha",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_button_offset": "$rainbowpie_localui_button_locked_offset"
            }
          ],

          // Rainbow Pie UI Override
          "$button_offset": "$rainbowpie_localui_button_offset",
          // 오버라이드 가능한 변수
          "$text_color": "$rainbowpie_localui_button_text_color",
          // 오버라이드 가능한 변수
          "$glyph_color": "$rainbowpie_localui_button_text_color",
          // 오버라이드 가능한 변수
          "$label_color": "$rainbowpie_localui_button_text_color",
          // 오버라이드 가능한 변수
          "$content_alpha": 1,

          // 이 안에 들어가는 부품 목록
          "controls": "$rainbowpie_localui_button_controls"
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_text_button@rainbowpie_ui_button_default": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_offset|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_size|default": [ "default", "default" ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_alignment|default": "center",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_border_enabled|default": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_controls": [
      {
        // ???/?? ??
        "button_background": {
          // 이미지 표시
          "type": "image",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $button_image_visible)",
          // 가로/세로 크기
          "size": "$button_image_size",
          // 기준점에서 이동하는 거리
          "offset": "$rainbowpie_localui_button_both_offset",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_button_color",
          // ???
          "alpha": "$rainbowpie_localui_button_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button_desc@rainbowpie_ui_button.button_desc": {}
      },
      {
        // ???/?? ??
        "button_content": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 오버라이드 가능한 변수
          "$button_content_size|default": [ "100% - 6px", "100% - 6px" ],
          // 가로/세로 크기
          "size": "$button_content_size",
          // 기준점에서 이동하는 거리
          "offset": "$rainbowpie_localui_button_both_offset",

          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "button_content": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점에서 이동하는 거리
                "offset": "$rainbowpie_localui_button_offset",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "button_text@rainbowpie_ui_common.text_label_notheme": {
                      // 보여줄 글자
                      "text": "$button_text",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_localui_button_text_color",
                      // 기준점에서 이동하는 거리
                      "offset": "$rainbowpie_localui_button_text_offset",
                      // 가로/세로 크기
                      "size": "$rainbowpie_localui_button_text_size",
                      // ?? ??
                      "text_alignment": "$rainbowpie_localui_button_text_alignment",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 바인딩 종류(변수로 관리되는 경우도 있음)
                          "binding_type": "$button_text_binding_type",
                          // ?? ???
                          "binding_condition": "$button_binding_condition",
                          // 목록 이름
                          "binding_collection_name": "$button_text_grid_collection_name",
                          // 가져올 값 이름
                          "binding_name": "$button_text",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "$button_text"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_content_button@rainbowpie_ui_button_default": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_border_enabled|default": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_controls": [
      {
        // ???/?? ??
        "button_background": {
          // 이미지 표시
          "type": "image",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $button_image_visible)",
          // 가로/세로 크기
          "size": "$button_image_size",
          // 기준점에서 이동하는 거리
          "offset": "$rainbowpie_localui_button_both_offset",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_button_color",
          // ???
          "alpha": "$rainbowpie_localui_button_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button_desc@rainbowpie_ui_button.button_desc": {}
      },
      {
        // ???/?? ??
        "button_content": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 오버라이드 가능한 변수
          "$button_content_size|default": [ "100% - 6px", "100% - 6px" ],
          // 가로/세로 크기
          "size": "$button_content_size",
          // 기준점에서 이동하는 거리
          "offset": "$rainbowpie_localui_button_both_offset",

          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "button_content": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점에서 이동하는 거리
                "offset": "$rainbowpie_localui_button_offset",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "content@$button_content": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_form_fitting_button@rainbowpie_ui_button_default": {
    // 가로/세로 크기
    "size": "$button_size_override",
    // ?? ?? ?
    "min_size": "$form_fitting_min_size",

    // 오버라이드 가능한 변수
    "$form_fitting_min_size|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$button_size_override|default": [ "100%c", "100%c" ],
    // 오버라이드 가능한 변수
    "$focus_border_size_override|default": [ "100%c + 2px", "100%c + 2px" ],
    // 오버라이드 가능한 변수
    "$button_image_size_override|default": [ "100%c + 2px", "100%c + 2px" ],
    // 오버라이드 가능한 변수
    "$button_content_size_override|default": [ "100%c + 6px", "100%c + 6px" ],

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_panel_size": [ "100%c", "100%c" ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_controls": [
      {
        // ???/?? ??
        "button_background": {
          // 이미지 표시
          "type": "image",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $button_image_visible)",
          // 가로/세로 크기
          "size": "$button_image_size_override",
          // ?? ?? ?
          "min_size": "$form_fitting_min_size",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_button_color",
          // ???
          "alpha": "$rainbowpie_localui_button_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "button_content": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점에서 이동하는 거리
                "offset": "$rainbowpie_localui_button_offset",
                // 가로/세로 크기
                "size": "$button_content_size_override",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "content@$button_type_panel": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_text_form_fitting_button@rainbowpie_ui_button_default": {
    // 가로/세로 크기
    "size": "$button_size_override",
    // ?? ?? ?
    "min_size": "$form_fitting_min_size",

    // 오버라이드 가능한 변수
    "$form_fitting_min_size|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$button_size_override|default": [ "100%c", "100%c" ],
    // 오버라이드 가능한 변수
    "$focus_border_size_override|default": [ "100%c + 2px", "100%c + 2px" ],
    // 오버라이드 가능한 변수
    "$button_image_size_override|default": [ "100%c + 2px", "100%c + 2px" ],
    // 오버라이드 가능한 변수
    "$button_content_size_override|default": [ "100%c + 6px", "100%c + 6px" ],

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_panel_size": [ "100%c", "100%c" ],

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_offset|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_size|default": [ "default", "default" ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_alignment|default": "center",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_controls": [
      {
        // ???/?? ??
        "button_background": {
          // 이미지 표시
          "type": "image",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $button_image_visible)",
          // 가로/세로 크기
          "size": "$button_image_size_override",
          // ?? ?? ?
          "min_size": "$form_fitting_min_size",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_button_color",
          // ???
          "alpha": "$rainbowpie_localui_button_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "button_content": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점에서 이동하는 거리
                "offset": "$rainbowpie_localui_button_offset",
                // 가로/세로 크기
                "size": "$button_content_size_override",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "button_text@rainbowpie_ui_common.text_label_notheme": {
                      // 보여줄 글자
                      "text": "$button_text",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_localui_button_text_color",
                      // 기준점에서 이동하는 거리
                      "offset": "$rainbowpie_localui_button_text_offset",
                      // 가로/세로 크기
                      "size": "$rainbowpie_localui_button_text_size",
                      // ?? ??
                      "text_alignment": "$rainbowpie_localui_button_text_alignment",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 바인딩 종류(변수로 관리되는 경우도 있음)
                          "binding_type": "$button_text_binding_type",
                          // ?? ???
                          "binding_condition": "$button_binding_condition",
                          // 목록 이름
                          "binding_collection_name": "$button_text_grid_collection_name",
                          // 가져올 값 이름
                          "binding_name": "$button_text",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "$button_text"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "button_desc": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 보이기/숨기기(공간 유지)
    "visible": "$hover_state",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_localui_button_desc_enabled)",
    // 가로/세로 크기
    "size": "$button_image_size",
    // 기준점에서 이동하는 거리
    "offset": "$rainbowpie_localui_button_both_offset",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "custom_hover_text": {
          // 클릭 가능한 버튼
          "type": "button",
          // ??/???
          "enabled": "(not ($touch or $game_pad))",
          // ??? ?? ?
          "allow_clipping": false,
          // ?? ??
          "follows_cursor": "(not ($touch or $game_pad))",
          // ?? ??
          "consume_event": false,
          // ?? ??
          "consume_hover_events": false,
          // 포커스 가능 여부
          "focus_enabled": false,
          // ?? ??
          "hover_control": "$hover_control",
          // ?? ??
          "locked_control": "$locked_control",
          // 오버라이드 가능한 변수
          "$hover_control": "hover_text",
          // 오버라이드 가능한 변수
          "$locked_control": "",
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "($touch or $game_pad)",
              // 오버라이드 가능한 변수
              "$hover_control": "",
              // 오버라이드 가능한 변수
              "$locked_control": "hover_text"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "hover_text": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "0px", "0px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "hover_text_background": {
                      // 이미지 표시
                      "type": "image",
                      // 사용할 이미지 경로
                      "texture": "($rainbowpie_ui_path_home + '/r_white')",
                      // 가로/세로 크기
                      "size": "$rainbowpie_localui_button_desc_text_size",
                      // 기준점에서 이동하는 거리
                      "offset": "$rainbowpie_localui_button_desc_text_offset",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "$rainbowpie_localui_button_desc_text_anchor",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "$rainbowpie_localui_button_desc_text_anchor",
                      // ?? ????
                      "clips_children": true,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 200,
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_hovertext_background_color",
                      // ???
                      "alpha": "$rainbowpie_ui_theme_hovertext_background_alpha",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "background_icon": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 0, 0 ],
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "$rainbowpie_ui_theme_hovertext_bgicon_anchor",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "$rainbowpie_ui_theme_hovertext_bgicon_anchor",
                            // 완전히 제거(공간도 없음)
                            "ignored": "(not $rainbowpie_ui_theme_hovertext_bgicon_enabled)",
                            // ??? ?? ?
                            "allow_clipping": true,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "icon_image": {
                                  // 이미지 표시
                                  "type": "image",
                                  // 가로/세로 크기
                                  "size": "$rainbowpie_ui_theme_hovertext_bgicon_size",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "$rainbowpie_ui_theme_hovertext_bgicon_anchor",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "$rainbowpie_ui_theme_hovertext_bgicon_anchor",
                                  // 기준점에서 이동하는 거리
                                  "offset": "$rainbowpie_ui_theme_hovertext_bgicon_offset",
                                  // 사용할 이미지 경로
                                  "texture": "$rainbowpie_ui_theme_hovertext_bgicon_texture",
                                  // ???
                                  "alpha": "$rainbowpie_ui_theme_hovertext_bgicon_alpha",
                                  // ?? ??
                                  "fill": "$rainbowpie_ui_theme_hovertext_bgicon_fill",
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 3
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "hover_text_controls": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "vertical",
                            // 가로/세로 크기
                            "size": [ "100%cm", "100%c" ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 8,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "hover_text_label@rainbowpie_ui_common.text_label_notheme": {
                                  // 가로/세로 크기
                                  "size": [ "default", "default" ],
                                  // ?? (R,G,B,A)
                                  "color": "$rainbowpie_ui_theme_hovertext_text_color",
                                  // 보여줄 글자
                                  "text": "$rainbowpie_localui_button_desc_text",
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": "$rainbowpie_localui_button_desc_text_bindings"
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

rainbowpie_ui_common.json RainbowPie UI · common

필요한 부분만 참고해서 가져가세요.

// 예제: rainbowpie_ui_common.json
// 분류: RainbowPie UI / common
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_ui_common",

  // ???/?? ??
  "editable_label": {
    // 텍스트 입력칸
    "type": "edit_box",
    // 포커스 가능 여부
    "focus_enabled": true,
    // ???/?? ??
    "enabled_newline": true,
    // ?? ?? ?
    "max_length": 32500,
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_select",
        // 어떤 동작을 실행할지
        "to_button_id": "button.text_edit_box_selected",
        // ?? ??
        "handle_select": true,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_select",
        // 어떤 동작을 실행할지
        "to_button_id": "button.text_edit_box_selected",
        // ?? ??
        "handle_select": false,
        // ?? ??
        "handle_deselect": true,
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "consume_event": false
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_ok",
        // 어떤 동작을 실행할지
        "to_button_id": "button.text_edit_box_selected",
        // ?? ??
        "handle_select": true,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_cancel",
        // 어떤 동작을 실행할지
        "to_button_id": "button.text_edit_box_deselected",
        // ?? ??
        "handle_select": false,
        // ?? ??
        "handle_deselect": true,
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      },
      {
        // 어떤 동작을 실행할지
        "to_button_id": "button.text_edit_box_hovered",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      }
    ]
  },

  // ???/?? ??
  "item_renderer": {
    // 특수 렌더러(그라디언트/플레이어 등)
    "type": "custom",
    // 커스텀 렌더러 종류
    "renderer": "inventory_item_renderer",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 5
  },

  // ???/?? ??
  "cell_image": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // ???/?? ??
  "container_scroll_background_image": {
    // 이미지 표시
    "type": "image",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "dialog_background_common": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "dialog_background_opaque@rainbowpie_ui_common.dialog_background_common": {
    // "texture": "($rainbowpie_ui_path_home + '/r_white')"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "inventory_background@rainbowpie_ui_common.dialog_background_opaque": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_theme_inventory_background_enabled)",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_background_alpha",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_inventory_oqaque",
        // 오버라이드 가능한 변수
        "$rainbowpie_ui_theme_inventory_background_alpha": 1.0
      }
    ]
  },

  // ???/?? ??
  "rainbowpie_gamepad_connect_tip_anim_start": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_cubic",
    // 걸리는 시간(초)
    "duration": 0.8,
    // 시작 값
    "from": [ 0, "-100%y"  ],
    // 끝 값
    "to": [ 0, 22 ],
    // 다음 애니메이션으로 연결
    "next": "@rainbowpie_ui_common.rainbowpie_gamepad_connect_tip_anim_wait"
  },

  // ???/?? ??
  "rainbowpie_gamepad_connect_tip_anim_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 5.0,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpie_ui_common.rainbowpie_gamepad_connect_tip_anim_end"
  },

  // ???/?? ??
  "rainbowpie_gamepad_connect_tip_anim_end": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_cubic",
    // ?? ??
    "destroy_at_end": "rainbowpie_gamepad_connect_tip",
    // 걸리는 시간(초)
    "duration": 0.8,
    // 시작 값
    "from": [ 0, 22 ],
    // 끝 값
    "to": [ 0, "-100%y" ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "back_button@rainbowpie_ui_controls.back_content_panel": {
  },

  // ???/?? ??
  "close_button": {
    // 클릭 가능한 버튼
    "type": "button",
    // 가로/세로 크기
    "size": [ 21, 21 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 오버라이드 가능한 변수
    "$close_button_offset|default": [ -2, 2 ],
    // 기준점에서 이동하는 거리
    "offset": "$close_button_offset",
    // ?? ??
    "locked_control": "",
    // ?? ??
    "default_control": "default",
    // ?? ??
    "hover_control": "hover",
    // ?? ??
    "pressed_control": "pressed",
    // ??? ??
    "sound_name": "random.click",
    // ??? ?? ?
    "sound_volume": 1.0,
    // ??? ?? ?
    "sound_pitch": 1.0,
    // 오버라이드 가능한 변수
    "$close_button_panel_size|default": [ 15, 15 ],
    // 오버라이드 가능한 변수
    "$close_button_to_button_id|default": "button.menu_exit",
    // 오버라이드 가능한 변수
    "$default_button_alpha|default": 1,
    // 오버라이드 가능한 변수
    "$default_hover_alpha|default": 1,
    // 오버라이드 가능한 변수
    "$default_pressed_alpha|default": 1,
    // 오버라이드 가능한 변수
    "$close_button_visible_binding_name|default": "#close_button_visible",
    // 오버라이드 가능한 변수
    "$close_button_visible_binding_type|default": "none",

    // 오버라이드 가능한 변수
    "$button_tts_name|default": "",
    // 오버라이드 가능한 변수
    "$button_tts_header|default": "accessibility.button.close",
    // 오버라이드 가능한 변수
    "$tts_section_header|default": "",

    // ?? ??
    "tts_name": "$button_tts_name",
    // ?? ??
    "tts_control_header": "$button_tts_header",
    // ?? ??
    "tts_section_header": "$tts_section_header",

    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 바인딩 종류(변수로 관리되는 경우도 있음)
        "binding_type": "$close_button_visible_binding_type",
        // 가져올 값 이름
        "binding_name": "$close_button_visible_binding_name",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      },
      {
        // 가져올 값 이름
        "binding_name": "#tts_enabled",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#focus_enabled"
      }
    ],
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_select",
        // 어떤 동작을 실행할지
        "to_button_id": "$close_button_to_button_id",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_ok",
        // 어떤 동작을 실행할지
        "to_button_id": "$close_button_to_button_id",
        // 입력 시점(pressed 등)
        "mapping_type": "focused"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "default@rainbowpie_ui_common.close_button_panel": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_closebutton_icon_color": "$rainbowpie_ui_theme_closebutton_default_color",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_closebutton_background_color": "$rainbowpie_ui_theme_closebutton_default_background_color",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_closebutton_background_alpha": "$rainbowpie_ui_theme_closebutton_default_background_alpha"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hover@rainbowpie_ui_common.close_button_panel": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_closebutton_icon_color": "$rainbowpie_ui_theme_closebutton_hover_color",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_closebutton_background_color": "$rainbowpie_ui_theme_closebutton_hover_background_color",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_closebutton_background_alpha": "$rainbowpie_ui_theme_closebutton_hover_background_alpha"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "pressed@rainbowpie_ui_common.close_button_panel": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_closebutton_icon_color": "$rainbowpie_ui_theme_closebutton_pressed_color",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_closebutton_background_color": "$rainbowpie_ui_theme_closebutton_pressed_background_color",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_closebutton_background_alpha": "$rainbowpie_ui_theme_closebutton_pressed_background_alpha"
        }
      }
    ]
  },

  // ???/?? ??
  "close_button_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_closebutton_icon_color|default": [],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_closebutton_icon_alpha|default": 1.0,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_closebutton_background_color|default": [],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_closebutton_background_alpha|default": 0.0,
    // 가로/세로 크기
    "size": "$close_button_panel_size",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "close_button_icon": {
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 가로/세로 크기
          "size": [ 15, 15 ],
          // 사용할 이미지 경로
          "texture": "($rainbowpie_ui_path_theme + '/icon/global/close_button/close')",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_closebutton_icon_color",
          // ???
          "alpha": "$rainbowpie_localui_closebutton_icon_alpha"
        }
      },
      {
        // ???/?? ??
        "close_button_background": {
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_closebutton_background_color",
          // ???
          "alpha": "$rainbowpie_localui_closebutton_background_alpha"
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "text_edit_box_label@common.text_edit_box_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_input_text_color"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "text_edit_box_place_holder_label@common.text_edit_box_place_holder_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_input_placeholder_color"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "default_indent@common.default_indent": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_input_default_background_color"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "edit_box_indent@common.edit_box_indent": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // 가로/세로 크기
    "size": "$edit_box_indent_size",
    // 오버라이드 가능한 변수
    "$edit_box_indent_size|default": [ "100%", "100% - 2px" ],
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_input_default_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_input_default_background_alpha",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "bottom_image": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": [ "100%", 2 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // ?? (R,G,B,A)
          "color": "$rainbowpie_ui_theme_input_default_btbar_color",
          // ???
          "alpha": "$rainbowpie_ui_theme_input_default_btbar_alpha"
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "edit_box_indent_hover@common.edit_box_indent": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // 가로/세로 크기
    "size": "$edit_box_indent_size",
    // 오버라이드 가능한 변수
    "$edit_box_indent_size|default": [ "100%", "100% - 2px" ],
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_input_hover_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_input_hover_background_alpha",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "bottom_image": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": [ "100%", 2 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // ?? (R,G,B,A)
          "color": "$rainbowpie_ui_theme_input_hover_btbar_color",
          // ???
          "alpha": "$rainbowpie_ui_theme_input_hover_btbar_alpha"
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "edit_box_indent_locked@common.edit_box_indent": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // 가로/세로 크기
    "size": "$edit_box_indent_size",
    // 오버라이드 가능한 변수
    "$edit_box_indent_size|default": [ "100%", "100% - 2px" ],
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_input_locked_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_input_locked_background_alpha",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "bottom_image": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": [ "100%", 2 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // ?? (R,G,B,A)
          "color": "$rainbowpie_ui_theme_input_locked_btbar_color",
          // ???
          "alpha": "$rainbowpie_ui_theme_input_locked_btbar_alpha"
        }
      }
    ]
  },

  // ???/?? ??
  "slider_step": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_slider_step_progress_default_color",
    // 가로/세로 크기
    "size": [ 2, 6 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 4,
    // 기준점에서 이동하는 거리
    "offset": "$step_offset"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "slider_step_hover@rainbowpie_ui_common.slider_step": {
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_slider_step_default_hover_color"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "slider_step_progress@rainbowpie_ui_common.slider_step": {
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_slider_step_default_default_color"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "slider_step_progress_hover@rainbowpie_ui_common.slider_step": {
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_slider_step_progress_hover_color"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "slider_button_state@common.slider_button_state": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_this_button_text_color": "$rainbowpie_ui_theme_slider_text_default_color",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "button_line1": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ 2, "100% - 3px" ],
          // 기준점에서 이동하는 거리
          "offset": [ -2, 0 ],
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_this_button_text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "button_line2": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ 2, "100% - 3px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 2, 0 ],
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_this_button_text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "slider_button_layout@rainbowpie_ui_common.slider_button_state": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_this_button_text_color": "$rainbowpie_ui_theme_slider_text_default_color",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_slider_default_button_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_slider_default_button_alpha"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "slider_button_hover_layout@rainbowpie_ui_common.slider_button_state": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_this_button_text_color": "$rainbowpie_ui_theme_slider_text_hover_color",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_slider_hover_button_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_slider_hover_button_alpha"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "slider_button_locked_layout@rainbowpie_ui_common.slider_button_state": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_this_button_text_color": "$rainbowpie_ui_theme_slider_text_locked_color",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_slider_locked_button_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_slider_locked_button_alpha"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "slider_button_indent_layout@rainbowpie_ui_common.slider_button_state": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_this_button_text_color": "$rainbowpie_ui_theme_slider_text_hover_color",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_slider_hover_button_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_slider_hover_button_alpha"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "slider_background@common.slider_background": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_slider_default_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_slider_default_background_alpha"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "slider_background_hover@common.slider_background_hover": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_slider_hover_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_slider_hover_background_alpha"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "slider_progress@common.slider_progress": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_slider_default_progress_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_slider_default_progress_alpha"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "slider_progress_hover@common.slider_progress_hover": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_slider_hover_progress_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_slider_hover_progress_alpha"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_dropdown@common.dropdown": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$dropdown_background_control": "rainbowpie_ui_controls.scroll_background_image",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_show_button|default": "$rainbowpie_ui_flag_dropdown_default_show_button",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_offset|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_size|default": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content|default": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "1@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#placeholder1",
          // 오버라이드 가능한 변수
          "$radio_label_text": "placeholder 1"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "2@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#placeholder2",
          // 오버라이드 가능한 변수
          "$radio_label_text": "placeholder 2"
        }
      }
    ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content_panel|default": "rainbowpie_ui_common.rainbowpie_dropdown_content_panel",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_type|default": "common.dropdown",
    // 기준점에서 이동하는 거리
    "offset": "$rainbowpie_localui_dropdown_offset",
    // 가로/세로 크기
    "size": "$rainbowpie_localui_dropdown_size",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "dropdown_button_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "dropdown_content@$rainbowpie_localui_dropdown_content_panel": {}
            },
            {
              // ???/?? ??
              "padding": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_flag_84d26622)",
                // 보이기/숨기기(공간 유지)
                "visible": "$rainbowpie_localui_dropdown_show_button",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "60%y", "100%" ],
                // ?? ?? ?
                "min_size": [ 20, "100%" ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dropdown@$rainbowpie_localui_dropdown_type": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_84d26622)",
          // 보이기/숨기기(공간 유지)
          "visible": "$rainbowpie_localui_dropdown_show_button",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$anchor_dropdown_content_from": "top_right",
          // 오버라이드 가능한 변수
          "$anchor_dropdown_content_to": "top_right",
          // 오버라이드 가능한 변수
          "$dropdown_toggle": "rainbowpie_ui_common.options_dropdown_toggle_control",
          // 오버라이드 가능한 변수
          "$dropdown_background": "$dropdown_background_control",
          // 오버라이드 가능한 변수
          "$dropdown_content|default": "unset_dropdown_content",
          // 오버라이드 가능한 변수
          "$dropdown_name|default": "unset $dropdown_name",
          // 오버라이드 가능한 변수
          "$options_dropdown_toggle_label_binding|default": "unset $options_dropdown_toggle_label_text",
          // 오버라이드 가능한 변수
          "$locked_alpha": 0.5,
          // 오버라이드 가능한 변수
          "$toggle_tts_header": "$option_label"
        }
      }
    ]
  },

  // ???/?? ??
  "rainbowpie_dropdown_content_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "fill", "100%" ],
    // ?? ????
    "clips_children": true,
    // 이 안에 들어가는 부품 목록
    "controls": "$rainbowpie_localui_dropdown_content"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "options_dropdown_toggle_control@settings_common.options_dropdown_toggle_control": {
    // 오버라이드 가능한 변수
    "$button_type_panel": "rainbowpie_ui_common.options_dropdown_toggle_control_button_type_panel",
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked",
    // 가로/세로 크기
    "size": [ "60%y", "100%" ],
    // ?? ?? ?
    "min_size": [ 20, "100%" ],
    // 기준점에서 이동하는 거리
    "offset": [ "100% - 100%x", 0 ]
  },

  // ???/?? ??
  "options_dropdown_toggle_control_button_type_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "dropdown_chevron_image": {
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 사용할 이미지 경로
          "texture": "textures/ui/chevron_white_down",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 가로/세로 크기
          "size": [ 8, 8 ]
        }
      }
    ]
  },

  // ???/?? ??
  "screen_background": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_watermark|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_ingame|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_ignored|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_override_ignored|default": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_blur|default": false,

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@rainbowpie_ui_common.global_background": {
          // 완전히 제거(공간도 없음)
          "ignored": "(((not $is_pregame) and (not $rainbowpie_localui_screenbackground_ingame)) or $rainbowpie_localui_screenbackground_override_ignored or $rainbowpie_localui_screenbackground_blur)",
          // 가로/세로 크기
          "size": [ "100%", "100%" ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@mintui_background.background_fullscreen": {
          // 완전히 제거(공간도 없음)
          "ignored": "(((not $is_pregame) and (not $rainbowpie_localui_screenbackground_ingame)) or $rainbowpie_localui_screenbackground_ignored or $rainbowpie_localui_screenbackground_blur)"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background_blur@mintui_background.background_blur_fullscreen": {
          // 완전히 제거(공간도 없음)
          "ignored": "(((not $is_pregame) and (not $rainbowpie_localui_screenbackground_ingame)) or $rainbowpie_localui_screenbackground_ignored or (not $rainbowpie_localui_screenbackground_blur))",
          // 오버라이드 가능한 변수
          "$background_mask": false
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "watermark_draw@rainbowpie_ui_common.watermark_draw": {
          // 완전히 제거(공간도 없음)
          "ignored": "(((($rainbowpie_ui_flag_watermark_awalys - $rainbowpieui_branch_type) = $rainbowpie_ui_flag_watermark_awalys) and (not $rainbowpie_localui_screen_watermark)) or $rainbowpie_localui_screenbackground_ignored)",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // ???/?? ??
  "watermark_draw": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "watermark_draw_panel@rainbowpie_ui_common.watermark_draw_panel": {}
      }
    ]
  },

  // ???/?? ??
  "watermark_draw_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 완전히 제거(공간도 없음)
    "ignored": "(not (($rainbowpie_ui_flag_watermark_ignore - $rainbowpieui_branch_type) = $rainbowpie_ui_flag_watermark_ignore))",
    // 보이기/숨기기(공간 유지)
    "visible": "$rainbowpieui_watermark",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 기준점에서 이동하는 거리
    "offset": "$rainbowpie_ui_localui_watermark_offset",
    // 오버라이드 가능한 변수
    "$rainbowpie_ui_localui_watermark_offset|default": [ 0, -10 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "label_0": {
          // 글자 표시
          "type": "label",
          // ?? (R,G,B,A)
          "color": "$main_header_text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 보여줄 글자
          "text": "($mintui_pack_name + ' ' + $rainbowpieui_branch_display_name)",
          // ??
          "font_type": "$rainbowpie_ui_theme_global_font_name",
          // ?? ?? ?
          "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
          // 가로/세로 크기
          "size": [ "default", 10 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 기준점에서 이동하는 거리
          "offset": [ -2, -2 ]
        }
      },
      {
        // ???/?? ??
        "label_1": {
          // 완전히 제거(공간도 없음)
          "ignored": "$rainbowpieui_ci",
          // 글자 표시
          "type": "label",
          // ?? (R,G,B,A)
          "color": "$main_header_text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 보여줄 글자
          "text": "('\"' + $rainbowpieui_engine_version_name + '.' + $rainbowpieui_patch_version + '.' + $rainbowpieui_hotfix_version + '.' + $rainbowpieui_branch_name + '\"')",
          // ??
          "font_type": "$rainbowpie_ui_theme_global_font_name",
          // ?? ?? ?
          "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
          // 가로/세로 크기
          "size": [ "default", 10 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 기준점에서 이동하는 거리
          "offset": [ -2, -12 ]
        }
      },
      {
        // ???/?? ??
        "label_1_ci": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpieui_ci)",
          // 글자 표시
          "type": "label",
          // ?? (R,G,B,A)
          "color": "$main_header_text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 보여줄 글자
          "text": "('\"' + $rainbowpieui_engine_version_name + '.' + $rainbowpieui_patch_version + '.' + $rainbowpieui_hotfix_version + '.' + $rainbowpieui_branch_name + '/' + $rainbowpieui_commit_id + '\"')",
          // ??
          "font_type": "$rainbowpie_ui_theme_global_font_name",
          // ?? ?? ?
          "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
          // 가로/세로 크기
          "size": [ "default", 10 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 기준점에서 이동하는 거리
          "offset": [ -2, -12 ]
        }
      },
      {
        // ???/?? ??
        "label_3": {
          // 완전히 제거(공간도 없음)
          "ignored": "($rainbowpieui_codename = '')",
          // 글자 표시
          "type": "label",
          // ?? (R,G,B,A)
          "color": "$main_header_text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 보여줄 글자
          "text": "($rainbowpieui_codename + '_' + $rainbowpieui_branch_type)",
          // ??
          "font_type": "$rainbowpie_ui_theme_global_font_name",
          // ?? ?? ?
          "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
          // 가로/세로 크기
          "size": [ "default", 10 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 기준점에서 이동하는 거리
          "offset": [ -2, -22 ]
        }
      }
    ]
  },

  // ???/?? ??
  "debug_draw": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_debug)",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 20,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_debug_name|default": "debug_draw",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "debug_draw_name@rainbowpie_ui_common.text_label": {
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 가로/세로 크기
          "size": [ "100%", 10 ],
          // 보여줄 글자
          "text": "$rainbowpie_localui_debug_name",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      },
      {
        // ???/?? ??
        "debug_draw_image": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/RainbowPieUI/debug_green",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ???
          "alpha": 0.3
        }
      }
    ]
  },

  // ???/?? ??
  "anim_progress_loading_bars_1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "in_out_quad",
    // 걸리는 시간(초)
    "duration": 1,
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ "100% - 100%x", 0 ],
    // 다음 애니메이션으로 연결
    "next": "@rainbowpie_ui_common.anim_progress_loading_bars_2"
  },

  // ???/?? ??
  "anim_progress_loading_bars_2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "in_out_quad",
    // 걸리는 시간(초)
    "duration": 1,
    // 시작 값
    "from": [ "100% - 100%x", 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // 다음 애니메이션으로 연결
    "next": "@rainbowpie_ui_common.anim_progress_loading_bars_1"
  },

  // Shared UI Common

  "progress_bar_inner1_anim_size": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "in_sine",
    // 걸리는 시간(초)
    "duration": 1.5,
    // 시작 값
    "from": [ "10%", "100%" ],
    // 끝 값
    "to": [ "120%", "100%" ],
    // 다음 애니메이션으로 연결
    "next": "@rainbowpie_ui_common.progress_bar_inner2_anim_size"
  },

  // ???/?? ??
  "progress_bar_inner1_anim_offset": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "in_sine",
    // 걸리는 시간(초)
    "duration": 1.5,
    // 시작 값
    "from": [ "-10%", 0 ],
    // 끝 값
    "to": [ "100%", 0 ],
    // 다음 애니메이션으로 연결
    "next": "@rainbowpie_ui_common.progress_bar_inner2_anim_offset"
  },

  // ???/?? ??
  "progress_bar_inner2_anim_size": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 1.0,
    // 시작 값
    "from": [ "75%", "100%" ],
    // 끝 값
    "to": [ "5%", "100%" ],
    // 다음 애니메이션으로 연결
    "next": "@rainbowpie_ui_common.progress_bar_inner1_anim_size"
  },

  // ???/?? ??
  "progress_bar_inner2_anim_offset": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_cubic",
    // 걸리는 시간(초)
    "duration": 1.0,
    // 시작 값
    "from": [ "-75%", 0 ],
    // 끝 값
    "to": [ "100%", 0 ],
    // 다음 애니메이션으로 연결
    "next": "@rainbowpie_ui_common.progress_bar_inner1_anim_offset"
  },

  // ???/?? ??
  "progress_loading_bars": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_progress_empty_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_progress_empty_alpha",
    // ?? ????
    "clips_children": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "progress_loading_bars_full": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 가로/세로 크기
          "size": [ "100%y", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": "@rainbowpie_ui_common.anim_progress_loading_bars_1",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_ui_theme_progress_full_color",
          // ???
          "alpha": "$rainbowpie_ui_theme_progress_full_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 완전히 제거(공간도 없음)
          "ignored": "$rainbowpie_ui_flag_522748cc"
        }
      },
      {
        // ???/?? ??
        "android_style_progress_loading_bars_full": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ?? ??
          "fill": true,
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 가로/세로 크기
          "size": [ 0, "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 애니메이션 목록
          "anims": [
            "@rainbowpie_ui_common.progress_bar_inner1_anim_size",
            "@rainbowpie_ui_common.progress_bar_inner1_anim_offset"
          ],
          // ?? (R,G,B,A)
          "color": "$rainbowpie_ui_theme_progress_full_color",
          // ???
          "alpha": "$rainbowpie_ui_theme_progress_full_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_522748cc)"
        }
      }
    ]
  },

  // ???/?? ??
  "fancy_progress_loading_bars": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_progress_empty_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_progress_empty_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_loading_bars_bindings|default": [],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "progress_loading_bars_full": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_ui_theme_progress_full_color",
          // ???
          "alpha": "$rainbowpie_ui_theme_progress_full_alpha",
          // ??? ??
          "clip_direction": "left",
          // ?? ??
          "clip_pixelperfect": false,
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 게임 값과 연결하는 규칙 목록
          "bindings": "$rainbowpie_localui_loading_bars_bindings"
        }
      }
    ]
  },

  // ???/?? ??
  "screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_content|default": [],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_ingame_anim1|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_ingame_anim2|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_anims|default": [
      "@rainbowpie_ui_animations.screen_exit_animation_push_offset",
      "@rainbowpie_ui_animations.screen_exit_animation_pop_offset",
      "@rainbowpie_ui_animations.screen_entrance_animation_push_offset",
      "@rainbowpie_ui_animations.screen_entrance_animation_pop_offset",
      "@rainbowpie_ui_animations.screen_exit_animation_push_offset_ingame",
      "@rainbowpie_ui_animations.screen_exit_animation_pop_offset_ingame",
      "@rainbowpie_ui_animations.screen_entrance_animation_push_offset_ingame",
      "@rainbowpie_ui_animations.screen_entrance_animation_pop_offset_ingame"
    ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // 애니메이션 목록
    "anims": "$rainbowpie_localui_screen_anims",
    // ????? ?? ?
    "animation_reset_name": "screen_animation_reset",
    // 이 안에 들어가는 부품 목록
    "controls": "$rainbowpie_localui_screen_content"
  },

  // ???/?? ??
  "dialog_background": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_dialog_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_dialog_background_alpha"
  },

  // ???/?? ??
  "inventory_global_background": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_global_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_global_background_alpha"
  },

  // ???/?? ??
  "global_label": {
    // 글자 표시
    "type": "label",
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_global_text_color"
  },

  // ???/?? ??
  "global_background": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_global_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_global_background_alpha"
  },

  // ???/?? ??
  "text_label_notheme": {
    // 글자 표시
    "type": "label",
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "text_label": {
    // 글자 표시
    "type": "label",
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "text_background": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha"
  },

  // ???/?? ??
  "title_label": {
    // 글자 표시
    "type": "label",
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_title_text_color"
  },

  // ???/?? ??
  "title_background": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_title_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_title_background_alpha"
  },

  // ???/?? ??
  "title_text": {
    // 글자 표시
    "type": "label",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 12,
    // 보여줄 글자
    "text": "$rainbowpie_ui_theme_global_title_text",
    // ?? ??
    "shadow": false,
    // ??
    "font_type": "$rainbowpie_ui_theme_global_title_text_font",
    // ?? ?? ??
    "font_scale_factor": "$title_text_scale",
    // 오버라이드 가능한 변수
    "$title_text_scale|default": 5.0
  },

  // ???/?? ??
  "screen_header": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 50,

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenheader_title|default": "DEFAULT HEADER TITLE",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenheader_title_bindings|default": [],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenheader_content_panel|default": "common.empty_panel",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenheader_ingameblur|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenheader_ingame_anim1|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenheader_ingame_anim2|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenheader_show_close|default": true,

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "RainbowPieHeaderBlur@rainbowpie_ui_controls.RainbowPieHeaderMask": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "RainbowPieHeaderBlur@rainbowpie_ui_controls.RainbowPieHeaderBlur": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "RainbowPieHeaderBlurInGame@rainbowpie_ui_controls.RainbowPieHeaderBlur": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_localui_screenheader_ingameblur)",
          // 오버라이드 가능한 변수
          "$background_ingame": true
        }
      },
      {
        // ???/?? ??
        "content_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 20 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",

          // 애니메이션 목록
          "anims": [
            "@rainbowpie_ui_animations.header_exit_animation_push_offset_both",
            "@rainbowpie_ui_animations.header_exit_animation_pop_offset_both",
            "@rainbowpie_ui_animations.header_entrance_animation_push_offset_both",
            "@rainbowpie_ui_animations.header_entrance_animation_pop_offset_both",
            "@rainbowpie_ui_animations.header_exit_animation_push_offset_both_ingame",
            "@rainbowpie_ui_animations.header_exit_animation_pop_offset_both_ingame",
            "@rainbowpie_ui_animations.header_entrance_animation_push_offset_both_ingame",
            "@rainbowpie_ui_animations.header_entrance_animation_pop_offset_both_ingame"
          ],
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "bottom_line": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 기준점에서 이동하는 거리
                "offset": [ 0, 19 ],
                // 가로/세로 크기
                "size": [ "100%", 1 ],
                // ???
                "alpha": "$rainbowpie_ui_theme_topbar_splitline_alpha",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_topbar_splitline_color",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 22,
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle"
              }
            },
            {
              // ???/?? ??
              "screen_header_background": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": [ "100%", 20 ],
                // ???
                "alpha": "$rainbowpie_ui_theme_topbar_background_alpha",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_topbar_background_color",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 21,
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle"
              }
            },
            {
              // ???/?? ??
              "screen_header_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 가로/세로 크기
                "size": [ "100%", 20 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 22,
                // 애니메이션 목록
                "anims": [
                  "@rainbowpie_ui_animations.header_exit_animation_push_offset",
                  "@rainbowpie_ui_animations.header_exit_animation_pop_offset",
                  "@rainbowpie_ui_animations.header_entrance_animation_push_offset",
                  "@rainbowpie_ui_animations.header_entrance_animation_pop_offset",
                  "@rainbowpie_ui_animations.header_exit_animation_push_offset_ingame",
                  "@rainbowpie_ui_animations.header_exit_animation_pop_offset_ingame",
                  "@rainbowpie_ui_animations.header_entrance_animation_push_offset_ingame",
                  "@rainbowpie_ui_animations.header_entrance_animation_pop_offset_ingame"
                ],
                // ????? ?? ?
                "animation_reset_name": "screen_animation_reset",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "back_button_content_panel@rainbowpie_ui_controls.back_content_panel": {
                      // 오버라이드 가능한 변수
                      "$focus_enabled": false,
                      // 보이기/숨기기(공간 유지)
                      "visible": "$rainbowpie_localui_screenheader_show_close",
                      // 오버라이드 가능한 변수
                      "$back_button_text": "$rainbowpie_localui_screenheader_title",
                      // 기준점에서 이동하는 거리
                      "offset": [ 2, 0 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "$rainbowpie_localui_screenheader_content_panel@$rainbowpie_localui_screenheader_content_panel": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

rainbowpie_ui_dialog.json RainbowPie UI · common

필요한 부분만 참고해서 가져가세요.

// 예제: rainbowpie_ui_dialog.json
// 분류: RainbowPie UI / common
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_ui_dialog",

  // ???/?? ??
  "header_background": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_dialog_header_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_dialog_header_alpha"
  },

  // ???/?? ??
  "content_background": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_dialog_content_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha"
  },

  // ???/?? ??
  "header": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 23 ],
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_title|default": "Default Dialog Header Title",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_title_bindings|default": [],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_show_close|default": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_extra_controls|default": "common.empty_panel",

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "debug01@rainbowpie_ui_common.debug_draw": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_debug_name": "dialog_header"
        }
      },
      {
        // ???/?? ??
        "popup_dialog_background_ingame": {
          // 이미지 표시
          "type": "image",
          // 완전히 제거(공간도 없음)
          "ignored": "$is_pregame",
          // 보이기/숨기기(공간 유지)
          "visible": "$rainbowpie_ui_flag_d36e5f2a",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // ?? (R,G,B,A)
          "color": "$rainbowpie_ui_theme_dialog_background_color",
          // ???
          "alpha": "$rainbowpie_ui_theme_dialog_background_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8,
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$rainbowpie_ui_flag_dialog_ingame_oqaque",
              // 오버라이드 가능한 변수
              "$rainbowpie_ui_theme_dialog_background_alpha": 1.0
            }
          ]
        }
      },
      {
        // ???/?? ??
        "header_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "title_background@rainbowpie_ui_dialog.header_background": {
                // 가로/세로 크기
                "size": [ "fill", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "title_stack_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "padding_border_center": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 완전히 제거(공간도 없음)
                            "ignored": "(not $rainbowpie_ui_flag_3f247b1e)",
                            // 가로/세로 크기
                            "size": [ "fill", 0 ]
                          }
                        },
                        {
                          // ???/?? ??
                          "padding_border": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 4, 0 ]
                          }
                        },
                        {
                          // ???/?? ??
                          "title_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%c", "100%" ],
                            // ?? ?? ?
                            "max_size": [ "100% - 100%y - 8px", "100%" ],
                            // ?? ????
                            "clips_children": true,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "title_label@rainbowpie_ui_common.text_label_notheme": {
                                  // 가로/세로 크기
                                  "size": [ "default", "default" ],
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "left_middle",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "left_middle",
                                  // ?? (R,G,B,A)
                                  "color": "$rainbowpie_ui_theme_dialog_title_color",
                                  // 보여줄 글자
                                  "text": "$rainbowpie_localui_dialogheader_title",
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 10,
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": "$rainbowpie_localui_dialogheader_title_bindings"
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "padding_border2": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 4, 0 ]
                          }
                        },
                        {
                          // ???/?? ??
                          "header_button_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "fill", "100%" ],
                            // ?? ?? ?
                            "min_size": [ "100%c", "100%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "header_stack_panel": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 가로/세로 크기
                                  "size": [ "100%c", "100%" ],
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "right_middle",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "right_middle",
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "$rainbowpie_localui_dialogheader_extra_controls@$rainbowpie_localui_dialogheader_extra_controls": {
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "($rainbowpie_localui_dialogheader_extra_controls = 'common.empty_panel')"
                                      }
                                    },
                                    {
                                      // ???/?? ??
                                      "button_background": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 보이기/숨기기(공간 유지)
                                        "visible": "$rainbowpie_localui_dialogheader_show_close",
                                        // 가로/세로 크기
                                        "size": [ "100%y", "100%" ],
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "close_button@rainbowpie_ui_common.close_button": {
                                              // 오버라이드 가능한 변수
                                              "$rainbowpie_ui_theme_closebutton_default_color": "$rainbowpie_ui_theme_dialog_title_color",
                                              // 오버라이드 가능한 변수
                                              "$close_button_panel_size": [ "100%", "100%" ],
                                              // 겹치는 순서(숫자 클수록 위)
                                              "layer": 10,
                                              // 가로/세로 크기
                                              "size": [ "100%", "100%" ],
                                              // 기준점에서 이동하는 거리
                                              "offset": [ 0, 0 ],
                                              // 기준점(어디에서 시작할지)
                                              "anchor_from": "center",
                                              // 붙일 위치(어디에 놓을지)
                                              "anchor_to": "center"
                                            }
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "dialog_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialog_content|default": "common.empty_panel",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialog_show_background|default": true,

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "header@rainbowpie_ui_dialog.header": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@rainbowpie_ui_dialog.content_background": {
          // 보이기/숨기기(공간 유지)
          "visible": "$rainbowpie_localui_dialog_show_background",
          // 가로/세로 크기
          "size": [ "100%", "100% - 23px" ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
        }
      },
      {
        // ???/?? ??
        "content_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100% - 23px" ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "popup_dialog_background_ingame": {
                // 이미지 표시
                "type": "image",
                // 완전히 제거(공간도 없음)
                "ignored": "$is_pregame",
                // 보이기/숨기기(공간 유지)
                "visible": "$rainbowpie_ui_flag_d36e5f2a",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_dialog_background_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_dialog_background_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": -10,
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$rainbowpie_ui_flag_dialog_ingame_oqaque",
                    // 오버라이드 가능한 변수
                    "$rainbowpie_ui_theme_dialog_background_alpha": 1.0
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "$rainbowpie_localui_dialog_content@$rainbowpie_localui_dialog_content": {}
            }
          ]
        }
      }
    ]
  }
}

rainbowpie_ui_gameplay.json RainbowPie UI · common

필요한 부분만 참고해서 가져가세요.

// 예제: rainbowpie_ui_gameplay.json
// 분류: RainbowPie UI / common
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_ui_gameplay"
}

rainbowpie_ui_inventory.json RainbowPie UI · common

필요한 부분만 참고해서 가져가세요.

// 예제: rainbowpie_ui_inventory.json
// 분류: RainbowPie UI / common
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_ui_inventory",

  // ???/?? ??
  "fastplace_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "64.28571428571429%", "50%" ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/fastplace')"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "fastplace_button_toggle_base@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_border_enabled": false,
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpie_ui_inventory.fastplace_icon",

    // 오버라이드 가능한 변수
    "$button_type_panel": "common_buttons.new_ui_binding_button_label",
    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": false,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_inventoryui_item_fastplace",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 1011,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  },

  // ???/?? ??
  "hide_search_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/chevron_right",
    // 가로/세로 크기
    "size": [ "70%", "70%" ],
    // ?? (R,G,B,A)
    "color": "$text_color"
  },

  // ???/?? ??
  "search_box_place_holder_control": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%cm" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "search_icon": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 가로/세로 크기
          "size": [ 10, 10 ],
          // 사용할 이미지 경로
          "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/search')",
          // ???
          "alpha": 0.5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "place_holder_text@common.text_edit_box_place_holder_label": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 12, 0 ]
        }
      }
    ]
  },

  // ???/?? ??
  "search_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "50%", "50%" ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/search')"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "search_button_toggle_base@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_border_enabled": false,
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpie_ui_inventory.search_icon",

    // 오버라이드 가능한 변수
    "$button_type_panel": "common_buttons.new_ui_binding_button_label",
    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_inventoryui_item_search",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 1001,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  },

  // ???/?? ??
  "background_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": "$rainbowpie_ui_theme_inventory_bgicon_size",
    // 기준점에서 이동하는 거리
    "offset": "$rainbowpie_ui_theme_inventory_bgicon_offset",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "$rainbowpie_ui_theme_inventory_bgicon_anchor",
    // 기준점(어디에서 시작할지)
    "anchor_from": "$rainbowpie_ui_theme_inventory_bgicon_anchor",
    // 사용할 이미지 경로
    "texture": "$rainbowpie_ui_theme_inventory_bgicon_texture_container",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_bgicon_alpha",
    // ?? ??
    "fill": "$rainbowpie_ui_theme_inventory_bgicon_fill",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 4
  },

  // ???/?? ??
  "header_background": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_header_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_header_alpha",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_inventory_oqaque",
        // 오버라이드 가능한 변수
        "$rainbowpie_ui_theme_inventory_header_alpha": 1.0
      }
    ]
  },

  // ???/?? ??
  "live_player_renderer": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 40, 40 ],
    // 기준점에서 이동하는 거리
    "offset": [ "-100%x", -16 ],
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "left_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "left_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "live_player": {
          // 특수 렌더러(그라디언트/플레이어 등)
          "type": "custom",
          // 커스텀 렌더러 종류
          "renderer": "live_player_renderer",
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#look_at_cursor": true
          },
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 애니메이션 목록
          "anims": [
            "@common.screen_exit_size_animation_push",
            "@common.screen_exit_size_animation_pop",
            "@common.screen_entrance_size_animation_push",
            "@common.screen_entrance_size_animation_pop"
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "header": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100% - 8px", 23 ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 3 ],
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventoryheader_title|default": "Default Inventory Header Title",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventoryheader_title_bindings|default": [],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventoryheader_extra_controls|default": "common.empty_panel",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventoryheader_title_border1_size|default": [ 4, 0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventoryheader_title_border2_size|default": [ 4, 0 ],

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventoryheader_search_ignored|default": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "debug01@rainbowpie_ui_common.debug_draw": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_debug_name": "inventory_header"
        }
      },
      {
        // ???/?? ??
        "header_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "title_background@rainbowpie_ui_inventory.header_background": {
                // 가로/세로 크기
                "size": [ "fill", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "title_stack_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "padding_border_center": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 완전히 제거(공간도 없음)
                            "ignored": "(not $rainbowpie_ui_flag_3f611894)",
                            // 가로/세로 크기
                            "size": [ "fill", 0 ]
                          }
                        },
                        {
                          // ???/?? ??
                          "padding_border": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 4, 0 ]
                          }
                        },
                        {
                          // ???/?? ??
                          "title_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "fill", "100%" ],
                            // ?? ?? ?
                            "max_size": [ "100% - 100%y - 8px", "100%" ],
                            // ?? ????
                            "clips_children": true,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "title_label@rainbowpie_ui_common.text_label_notheme": {
                                  // 가로/세로 크기
                                  "size": [ "default", "default" ],
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "left_middle",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "left_middle",
                                  // ?? (R,G,B,A)
                                  "color": "$rainbowpie_ui_theme_inventory_header_title_color",
                                  // 보여줄 글자
                                  "text": "$rainbowpie_localui_inventoryheader_title",
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 10,
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": "$rainbowpie_localui_inventoryheader_title_bindings"
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "padding_border2": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 4, 0 ]
                          }
                        },
                        {
                          // ???/?? ??
                          "header_button_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%c", "100%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "header_stack_panel": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 가로/세로 크기
                                  "size": [ "100%c", "100%" ],
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "right_middle",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "right_middle",
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // ???/?? ??
                                      "extra_control_panel": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ "100%c", "100%" ],
                                        // 보이기/숨기기(공간 유지)
                                        "visible": true,
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 계산/조건 결과를 연결
                                            "binding_type": "view",
                                            // ?? ??
                                            "source_control_name": "show_search_box",
                                            // 계산식/참조 값
                                            "source_property_name": "(not #toggle_state)",
                                            // 결과가 들어갈 속성
                                            "target_property_name": "#visible",
                                            // 완전히 제거(공간도 없음)
                                            "ignored": "((not $rainbowpie_ui_flag_d6bb54d8) or (not $rainbowpie_ui_flag_84df7492) or $rainbowpie_localui_inventoryheader_search_ignored)"
                                          }
                                        ],
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "$rainbowpie_localui_inventoryheader_extra_controls@$rainbowpie_localui_inventoryheader_extra_controls": {
                                              // 완전히 제거(공간도 없음)
                                              "ignored": "($rainbowpie_localui_inventoryheader_extra_controls = 'common.empty_panel')"
                                            }
                                          }
                                        ]
                                      }
                                    },
                                    // add tab in ft
                                    {
                                      // ???/?? ??
                                      "fastplace_panel": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ "100%c", "100%" ],
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "((not $rainbowpie_ui_flag_29bdcf8a) or (not $rainbowpie_ui_flag_84df7492) or $rainbowpie_localui_inventoryheader_search_ignored)",
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 계산/조건 결과를 연결
                                            "binding_type": "view",
                                            // ?? ??
                                            "source_control_name": "show_search_box",
                                            // 계산식/참조 값
                                            "source_property_name": "(not #toggle_state)",
                                            // 결과가 들어갈 속성
                                            "target_property_name": "#visible",
                                            // 완전히 제거(공간도 없음)
                                            "ignored": "((not $rainbowpie_ui_flag_d6bb54d8) or (not $rainbowpie_ui_flag_84df7492) or $rainbowpie_localui_inventoryheader_search_ignored)"
                                          }
                                        ],
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "fastplace_button@rainbowpie_ui_inventory.fastplace_button_toggle_base": {
                                              // 오버라이드 가능한 변수
                                              "$rainbowpie_localui_button_default_alpha": 0.0,
                                              // 오버라이드 가능한 변수
                                              "$button_image_size": [ "100%", "100%" ],
                                              // 기준점(어디에서 시작할지)
                                              "anchor_from": "center",
                                              // 붙일 위치(어디에 놓을지)
                                              "anchor_to": "center",
                                              // 가로/세로 크기
                                              "size": [ "100%y", "100%" ],
                                              // 오버라이드 가능한 변수
                                              "$toggle_group_forced_index": 1010,
                                              // 오버라이드 가능한 변수
                                              "$toggle_view_binding_name": "inventoryui_fastplace",
                                              // 겹치는 순서(숫자 클수록 위)
                                              "layer": 10
                                            }
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      // ???/?? ??
                                      "search_panel": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ "100%c", "100%" ],
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "((not $rainbowpie_ui_flag_d6bb54d8) or (not $rainbowpie_ui_flag_84df7492) or $rainbowpie_localui_inventoryheader_search_ignored)",
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // ???/?? ??
                                            "search_inputbox": {
                                              // 패널: 다른 부품을 담는 바닥판
                                              "type": "panel",
                                              // 가로/세로 크기
                                              "size": [ "100%c", "100%" ],
                                              // 게임 값과 연결하는 규칙 목록
                                              "bindings": [
                                                {
                                                  // 계산/조건 결과를 연결
                                                  "binding_type": "view",
                                                  // ?? ??
                                                  "source_control_name": "show_search_box",
                                                  // 계산식/참조 값
                                                  "source_property_name": "#toggle_state",
                                                  // 결과가 들어갈 속성
                                                  "target_property_name": "#visible"
                                                }
                                              ],
                                              // 이 안에 들어가는 부품 목록
                                              "controls": [
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "back_button@rainbowpie_ui_inventory.search_button_toggle_base": {
                                                    // 오버라이드 가능한 변수
                                                    "$button_content": "rainbowpie_ui_inventory.hide_search_icon",
                                                    // 오버라이드 가능한 변수
                                                    "$button_image_size": [ "100%", "100%" ],
                                                    // 기준점(어디에서 시작할지)
                                                    "anchor_from": "left_middle",
                                                    // 붙일 위치(어디에 놓을지)
                                                    "anchor_to": "left_middle",
                                                    // 가로/세로 크기
                                                    "size": [ "100%y", "76%" ],
                                                    // 오버라이드 가능한 변수
                                                    "$toggle_group_forced_index": 1001,
                                                    // 오버라이드 가능한 변수
                                                    "$toggle_view_binding_name": "hide_search_box",
                                                    // 겹치는 순서(숫자 클수록 위)
                                                    "layer": 10,
                                                    // 오버라이드 가능한 변수
                                                    "$button_mappings": [
                                                      {
                                                        // 어떤 입력을 받을지
                                                        "from_button_id": "button.menu_select",
                                                        // 어떤 동작을 실행할지
                                                        "to_button_id": "button.menu_select",
                                                        // 입력 시점(pressed 등)
                                                        "mapping_type": "pressed"
                                                      },
                                                      {
                                                        // 어떤 입력을 받을지
                                                        "from_button_id": "button.menu_ok",
                                                        // 어떤 동작을 실행할지
                                                        "to_button_id": "button.menu_select",
                                                        // 입력 시점(pressed 등)
                                                        "mapping_type": "pressed"
                                                      },
                                                      {
                                                        // 어떤 입력을 받을지
                                                        "from_button_id": "button.menu_cancel",
                                                        // 어떤 동작을 실행할지
                                                        "to_button_id": "button.menu_select",
                                                        // 입력 시점(pressed 등)
                                                        "mapping_type": "global"
                                                      }
                                                    ],
                                                    // 게임 값과 연결하는 규칙 목록
                                                    "bindings": [
                                                      {
                                                        // 계산/조건 결과를 연결
                                                        "binding_type": "view",
                                                        // ?? ??
                                                        "source_control_name": "show_search_box",
                                                        // 계산식/참조 값
                                                        "source_property_name": "#toggle_state",
                                                        // 결과가 들어갈 속성
                                                        "target_property_name": "#enabled"
                                                      }
                                                    ]
                                                  }
                                                },
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "search_text_box@common.text_edit_box": {
                                                    // 오버라이드 가능한 변수
                                                    "$rainbowpie_localui_editbox_enabled": true,
                                                    // 오버라이드 가능한 변수
                                                    "$edit_box_indent_size": [ "100%", "100%" ],
                                                    // 기준점(어디에서 시작할지)
                                                    "anchor_from": "right_middle",
                                                    // 붙일 위치(어디에 놓을지)
                                                    "anchor_to": "right_middle",
                                                    // 가로/세로 크기
                                                    "size": [ "440%y", "76%" ],
                                                    // 오버라이드 가능한 변수
                                                    "$text_box_name": "inventoryui_search_text_box",
                                                    // 오버라이드 가능한 변수
                                                    "$text_edit_box_content_binding_name": "#inventoryui_search_text_box_item_name",
                                                    // 오버라이드 가능한 변수
                                                    "$text_edit_text_control": "inventoryui_search_text_box_display_text",
                                                    // 오버라이드 가능한 변수
                                                    "$place_holder_control": "rainbowpie_ui_inventory.search_box_place_holder_control",
                                                    // 오버라이드 가능한 변수
                                                    "$place_holder_text": "itemGroup.search",
                                                    // 끝에서 다시 처음으로 순환
                                                    "focus_wrap_enabled": false,
                                                    // ?? ?? ?
                                                    "max_length": 32767,
                                                    // 겹치는 순서(숫자 클수록 위)
                                                    "layer": 12
                                                  }
                                                }
                                              ]
                                            }
                                          },
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "search_button@rainbowpie_ui_inventory.search_button_toggle_base": {
                                              // 오버라이드 가능한 변수
                                              "$rainbowpie_localui_button_default_alpha": 0.0,
                                              // 오버라이드 가능한 변수
                                              "$button_image_size": [ "100%", "100%" ],
                                              // 기준점(어디에서 시작할지)
                                              "anchor_from": "center",
                                              // 붙일 위치(어디에 놓을지)
                                              "anchor_to": "center",
                                              // 가로/세로 크기
                                              "size": [ "100%y", "100%" ],
                                              // 오버라이드 가능한 변수
                                              "$toggle_group_forced_index": 1000,
                                              // 오버라이드 가능한 변수
                                              "$toggle_view_binding_name": "show_search_box",
                                              // 겹치는 순서(숫자 클수록 위)
                                              "layer": 10,
                                              // 게임 값과 연결하는 규칙 목록
                                              "bindings": [
                                                {
                                                  // 계산/조건 결과를 연결
                                                  "binding_type": "view",
                                                  // ?? ??
                                                  "source_control_name": "show_search_box",
                                                  // 계산식/참조 값
                                                  "source_property_name": "(not #toggle_state)",
                                                  // 결과가 들어갈 속성
                                                  "target_property_name": "#enabled"
                                                },
                                                {
                                                  // 계산/조건 결과를 연결
                                                  "binding_type": "view",
                                                  // ?? ??
                                                  "source_control_name": "show_search_box",
                                                  // 계산식/참조 값
                                                  "source_property_name": "(not #toggle_state)",
                                                  // 결과가 들어갈 속성
                                                  "target_property_name": "#visible"
                                                }
                                              ]
                                            }
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      // ???/?? ??
                                      "button_background": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ "100%y", "100%" ],
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "close_button@rainbowpie_ui_common.close_button": {
                                              // 오버라이드 가능한 변수
                                              "$rainbowpie_ui_theme_closebutton_default_color": "$rainbowpie_ui_theme_inventory_header_title_color",
                                              // 오버라이드 가능한 변수
                                              "$close_button_panel_size": [ "100%", "100%" ],
                                              // 겹치는 순서(숫자 클수록 위)
                                              "layer": 10,
                                              // 가로/세로 크기
                                              "size": [ "100%", "100%" ],
                                              // 기준점에서 이동하는 거리
                                              "offset": [ 0, 0 ],
                                              // 기준점(어디에서 시작할지)
                                              "anchor_from": "center",
                                              // 붙일 위치(어디에 놓을지)
                                              "anchor_to": "center"
                                            }
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "header_pocket": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 25 ],
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventoryheader_single_title|default": false,

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventoryheader_title|default": "Default Inventory Header Title",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventoryheader_title_bindings|default": [],

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventoryheader_inventory_title|default": "Default Inventory Header Title",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventoryheader_inventory_title_bindings|default": [],

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventoryheader_container_title|default": "Default Container Header Title",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventoryheader_container_title_bindings|default": [],

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "close_button@rainbowpie_ui_common.close_button": {
          // 오버라이드 가능한 변수
          "$rainbowpie_ui_theme_closebutton_default_color": "$rainbowpie_ui_theme_inventory_header_title_color",
          // 오버라이드 가능한 변수
          "$close_button_panel_size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10,
          // 가로/세로 크기
          "size": [ "100%y", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_background@rainbowpie_ui_inventory.header_background": {
          // 가로/세로 크기
          "size": [ "100%", "100%" ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_label@rainbowpie_ui_common.text_label_notheme": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_localui_inventoryheader_single_title)",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_ui_theme_inventory_header_title_color",
          // 보여줄 글자
          "text": "$rainbowpie_localui_inventoryheader_title",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10,
          // 게임 값과 연결하는 규칙 목록
          "bindings": "$rainbowpie_localui_inventoryheader_title_bindings"
        }
      },
      {
        // ???/?? ??
        "header_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 완전히 제거(공간도 없음)
          "ignored": "$rainbowpie_localui_inventoryheader_single_title",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "inventory_title": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "50%", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title_label@rainbowpie_ui_common.text_label_notheme": {
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_inventory_header_title_color",
                      // 보여줄 글자
                      "text": "$rainbowpie_localui_inventoryheader_inventory_title",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 10,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": "$rainbowpie_localui_inventoryheader_inventory_title_bindings"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "container_title": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "50%", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title_label@rainbowpie_ui_common.text_label_notheme": {
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_inventory_header_title_color",
                      // 보여줄 글자
                      "text": "$rainbowpie_localui_inventoryheader_container_title",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 10,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": "$rainbowpie_localui_inventoryheader_container_title_bindings"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

rainbowpie_ui_store_common.json RainbowPie UI · common

필요한 부분만 참고해서 가져가세요.

// 예제: rainbowpie_ui_store_common.json
// 분류: RainbowPie UI / common
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_ui_store_common",

  // ???/?? ??
  "header_content_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$ignore_inventory_button": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "title_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "padding1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "fill", "100%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "status_and_coins@common_store.status_with_coins": {
                // 완전히 제거(공간도 없음)
                "ignored": "$store_disabled",
                // 오버라이드 가능한 변수
                "$top_status_and_coins_visible_binding_type|default": "none",
                // 오버라이드 가능한 변수
                "$top_status_and_coins_visible_binding|default": "",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 바인딩 종류(변수로 관리되는 경우도 있음)
                    "binding_type": "$top_status_and_coins_visible_binding_type",
                    // 가져올 값 이름
                    "binding_name": "$top_status_and_coins_visible_binding",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding5": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 1, "100%" ]
              }
            },
            {
              // ???/?? ??
              "search_header_stack": {
                // 완전히 제거(공간도 없음)
                "ignored": "($is_on_3p_server or $ignore_search)",
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 가로/세로 크기
                "size": [ "100%c", "100%" ],
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "search_header_text_box_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 80, "100%" ],
                      // 오버라이드 가능한 변수
                      "$text_edit_clipping_panel_size": [ 57, 15 ],
                      // 오버라이드 가능한 변수
                      "$text_edit_box_label_anchor_point": "left_middle",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "search_header_text_box@common.text_edit_box": {
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_editbox_enabled": true,
                            // 오버라이드 가능한 변수
                            "$edit_box_indent_size": [ "100%", "100%" ],
                            // 가로/세로 크기
                            "size": [ "100%", "100% - 3px" ],
                            // ?? ?? ?
                            "max_length": 50,
                            // 오버라이드 가능한 변수
                            "$text_box_name": "search_header_text_box",
                            // 오버라이드 가능한 변수
                            "$text_edit_box_enabled_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$text_edit_box_content_binding_name": "#search_header_box_text_content",
                            // 오버라이드 가능한 변수
                            "$place_holder_text": "realmsSettingsScreen.searchBox",
                            // 오버라이드 가능한 변수
                            "$enabled": true,
                            // 오버라이드 가능한 변수
                            "$focus_override_left": "purchase_coins_panel",
                            // 오버라이드 가능한 변수
                            "$focus_override_right": "store_layout_search_button",
                            // 오버라이드 가능한 변수
                            "$focus_id": "search_header_text_box",
                            // 끝에서 다시 처음으로 순환
                            "focus_wrap_enabled": false,
                            // 포커스 가능 여부
                            "focus_enabled": true
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "store_layout_search_button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%c", "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "store_layout_search_button@store_layout.store_layout_ribbon_search_button": {
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100%", "100%" ],
                            // 오버라이드 가능한 변수
                            "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                            // 가로/세로 크기
                            "size": [ "100%y", "100% - 3px" ],
                            // 오버라이드 가능한 변수
                            "$focus_id": "store_layout_search_button",
                            // 오버라이드 가능한 변수
                            "$button_tts_header": "store.search.button"
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "padding0": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 1, "100%" ]
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#search_header_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

rainbowpie_ui_tab.json RainbowPie UI · common

필요한 부분만 참고해서 가져가세요.

// 예제: rainbowpie_ui_tab.json
// 분류: RainbowPie UI / common
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_ui_tab",

  // ???/?? ??
  "tab_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$tab_content|default": "common_tabs.empty_tab_content",
    // 오버라이드 가능한 변수
    "$is_transparent_enabled|default": false,
    // 오버라이드 가능한 변수
    "$is_checked_bar_enabled|default": true,
    // 오버라이드 가능한 변수
    "$checked_bar_anchor|default": "top",
    // 오버라이드 가능한 변수
    "$tab_image_size|default": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$tab_image_offset|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$tab_image_anchor|default": "center",
    // 오버라이드 가능한 변수
    "$tab_content_size|default": [ "100% - 4px", "100% - 4px" ],
    // 오버라이드 가능한 변수
    "$tab_content_offset|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$tab_content_anchor|default": "center",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_color|default": [],
    // 오버라이드 가능한 변수
    "$hover_state|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_border_layer|default": 50,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "button_glint": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$tab_image_size",
          // 기준점에서 이동하는 거리
          "offset": "$tab_image_offset",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "$tab_image_anchor",
          // 기준점(어디에서 시작할지)
          "anchor_from": "$tab_image_anchor",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_99d9851a)",
          // 겹치는 순서(숫자 클수록 위)
          "layer": "$rainbowpie_localui_button_hover_border_layer",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hover@rainbowpie_ui_button.glint_border_base": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_glint_size": [ 72, 72 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_glint_alpha": 0.25,
                // 완전히 제거(공간도 없음)
                "ignored": "(not $hover_state)",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 겹치는 순서(숫자 클수록 위)
                "layer": "($rainbowpie_localui_button_hover_border_layer - ($rainbowpie_localui_button_hover_border_layer * 2))"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "checked_image": {
          // 보이기/숨기기(공간 유지)
          "visible": "$is_checked_bar_enabled",
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$tab_image_size",
          // 기준점에서 이동하는 거리
          "offset": "$tab_image_offset",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "$tab_image_anchor",
          // 기준점(어디에서 시작할지)
          "anchor_from": "$tab_image_anchor",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "checked_top": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $is_checked_state)",
                // 보이기/숨기기(공간 유지)
                "visible": "($checked_bar_anchor = 'top')",
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": [ "100%", 2 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_toggle_background_checked_default_btbar_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_toggle_background_checked_default_btbar_alpha"
              }
            },
            {
              // ???/?? ??
              "checked_left": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $is_checked_state)",
                // 보이기/숨기기(공간 유지)
                "visible": "($checked_bar_anchor = 'left')",
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": [ 2, "100%" ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_toggle_background_checked_default_btbar_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_toggle_background_checked_default_btbar_alpha"
              }
            },
            {
              // ???/?? ??
              "checked_right": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $is_checked_state)",
                // 보이기/숨기기(공간 유지)
                "visible": "($checked_bar_anchor = 'right')",
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": [ 2, "100%" ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "right_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "right_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_toggle_background_checked_default_btbar_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_toggle_background_checked_default_btbar_alpha"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "tab_image": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": "$tab_image_size",
          // 기준점에서 이동하는 거리
          "offset": "$tab_image_offset",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "$tab_image_anchor",
          // 기준점(어디에서 시작할지)
          "anchor_from": "$tab_image_anchor",
          // 오버라이드 가능한 변수
          "$texture|default": "textures/ui/White",
          // 사용할 이미지 경로
          "texture": "$texture",
          // 오버라이드 가능한 변수
          "$rainbowpie_toggle_color|default": [ 0.0, 0.0, 0.0 ],
          // 오버라이드 가능한 변수
          "$rainbowpie_toggle_alpha|default": 0.5,
          // ?? (R,G,B,A)
          "color": "$rainbowpie_toggle_color",
          // ???
          "alpha": "$rainbowpie_toggle_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$is_transparent_enabled",
              // 오버라이드 가능한 변수
              "$texture": ""
            }
          ]
        }
      },
      {
        // ???/?? ??
        "tab_content_sizer": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 오버라이드 가능한 변수
          "$text_color": "$rainbowpie_localui_button_text_color",
          // 오버라이드 가능한 변수
          "$glyph_color": "$rainbowpie_localui_button_text_color",
          // 가로/세로 크기
          "size": "$tab_content_size",
          // 기준점에서 이동하는 거리
          "offset": "$tab_content_offset",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "$tab_content_anchor",
          // 기준점(어디에서 시작할지)
          "anchor_from": "$tab_content_anchor",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "tab_content@$tab_content": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3
              }
            }
          ]
        }
      }
    ]
  }
}

rainbowpie_ui_toggle.json RainbowPie UI · common

필요한 부분만 참고해서 가져가세요.

// 예제: rainbowpie_ui_toggle.json
// 분류: RainbowPie UI / common
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_ui_toggle",

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_content_button_panel@rainbowpie_ui_button.rainbowpie_ui_content_button": {
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_content_button_unchecked@rainbowpie_ui_toggle.toggle_content_button_panel": {
    // Rainbow Pie UI Variables
    // Button State
    "$default_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_content_button_unchecked_hover@rainbowpie_ui_toggle.toggle_content_button_panel": {
    // Rainbow Pie UI Variables
    // Button State
    "$hover_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_content_button_unchecked_locked@rainbowpie_ui_toggle.toggle_content_button_panel": {
    // Rainbow Pie UI Variables
    // Button State
    "$locked_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_content_button_unchecked_locked_hover@rainbowpie_ui_toggle.toggle_content_button_panel": {
    // Rainbow Pie UI Variables
    // Button State
    "$locked_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_content_button_checked@rainbowpie_ui_toggle.toggle_content_button_panel": {
    // Rainbow Pie UI Variables
    // Button State
    "$default_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_border_always_visible": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_content_button_checked_hover@rainbowpie_ui_toggle.toggle_content_button_panel": {
    // Rainbow Pie UI Variables
    // Button State
    "$hover_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_border_always_visible": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_content_button_checked_locked@rainbowpie_ui_toggle.toggle_content_button_panel": {
    // Rainbow Pie UI Variables
    // Button State
    "$locked_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_border_always_visible": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_content_button_checked_locked_hover@rainbowpie_ui_toggle.toggle_content_button_panel": {
    // Rainbow Pie UI Variables
    // Button State
    "$locked_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_border_always_visible": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_button_panel@rainbowpie_ui_button.rainbowpie_ui_text_button": {
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_button_unchecked@rainbowpie_ui_toggle.toggle_button_panel": {
    // Rainbow Pie UI Variables
    // Button State
    "$default_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_button_unchecked_hover@rainbowpie_ui_toggle.toggle_button_panel": {
    // Rainbow Pie UI Variables
    // Button State
    "$hover_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_button_unchecked_locked@rainbowpie_ui_toggle.toggle_button_panel": {
    // Rainbow Pie UI Variables
    // Button State
    "$locked_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_button_unchecked_locked_hover@rainbowpie_ui_toggle.toggle_button_panel": {
    // Rainbow Pie UI Variables
    // Button State
    "$locked_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_button_checked@rainbowpie_ui_toggle.toggle_button_panel": {
    // Rainbow Pie UI Variables
    // Button State
    "$default_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_button_checked_hover@rainbowpie_ui_toggle.toggle_button_panel": {
    // Rainbow Pie UI Variables
    // Button State
    "$hover_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_button_checked_locked@rainbowpie_ui_toggle.toggle_button_panel": {
    // Rainbow Pie UI Variables
    // Button State
    "$locked_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_button_checked_locked_hover@rainbowpie_ui_toggle.toggle_button_panel": {
    // Rainbow Pie UI Variables
    // Button State
    "$locked_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_tab_panel@rainbowpie_ui_button.rainbowpie_ui_button_default": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": [],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": 1.0,
    // 오버라이드 가능한 변수
    "$check_state|default": false,
    // 오버라이드 가능한 변수
    "$button_image_size": [
      "100%",
      "100%"
    ],
    // 오버라이드 가능한 변수
    "$toggle_image": "common.empty_panel",
    // 오버라이드 가능한 변수
    "$checked_bar_anchor|default": "top",
    // 오버라이드 가능한 변수
    "$is_checked_bar_enabled|default": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_controls": [
      {
        // ???/?? ??
        "button_glint": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$button_image_size",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_99d9851a)",
          // 보이기/숨기기(공간 유지)
          "visible": "$button_image_visible",
          // 겹치는 순서(숫자 클수록 위)
          "layer": "$rainbowpie_localui_button_hover_border_layer",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hover@rainbowpie_ui_button.glint_border_base": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_glint_size": [ 72, 72 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_glint_alpha": 0.25,
                // 완전히 제거(공간도 없음)
                "ignored": "(not $hover_state)",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 겹치는 순서(숫자 클수록 위)
                "layer": "($rainbowpie_localui_button_hover_border_layer - ($rainbowpie_localui_button_hover_border_layer * 2))"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "button_background": {
          // 이미지 표시
          "type": "image",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $button_image_visible)",
          // 가로/세로 크기
          "size": "$button_image_size",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_button_color",
          // ???
          "alpha": "$rainbowpie_localui_button_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "checked_image": {
          // 보이기/숨기기(공간 유지)
          "visible": "$is_checked_bar_enabled",
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$button_image_size",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "checked_top": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $check_state)",
                // 보이기/숨기기(공간 유지)
                "visible": "($checked_bar_anchor = 'top')",
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": [
                  "100%",
                  2
                ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // ?? (R,G,B,A)
                "color": "$rainbowpie_localui_toggle_btbar_color",
                // ???
                "alpha": "$rainbowpie_localui_toggle_btbar_alpha"
              }
            },
            {
              // ???/?? ??
              "checked_left": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $check_state)",
                // 보이기/숨기기(공간 유지)
                "visible": "($checked_bar_anchor = 'left')",
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": [
                  2,
                  "100%"
                ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // ?? (R,G,B,A)
                "color": "$rainbowpie_localui_toggle_btbar_color",
                // ???
                "alpha": "$rainbowpie_localui_toggle_btbar_alpha"
              }
            },
            {
              // ???/?? ??
              "checked_right": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $check_state)",
                // 보이기/숨기기(공간 유지)
                "visible": "($checked_bar_anchor = 'right')",
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": [
                  2,
                  "100%"
                ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "right_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "right_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // ?? (R,G,B,A)
                "color": "$rainbowpie_localui_toggle_btbar_color",
                // ???
                "alpha": "$rainbowpie_localui_toggle_btbar_alpha"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "button_content": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 오버라이드 가능한 변수
          "$button_content_size|default": [
            "100% - 6px",
            "100% - 6px"
          ],
          // 가로/세로 크기
          "size": "$button_content_size",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "$button_type_panel@$button_type_panel": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_tab_unchecked@rainbowpie_ui_toggle.toggle_tab_panel": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_default_color|default": "$rainbowpie_ui_theme_toggle_text_default_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_hover_color|default": "$rainbowpie_ui_theme_toggle_text_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_pressed_color|default": "$rainbowpie_ui_theme_toggle_text_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_alpha",
    // Button State
    "$default_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_tab_unchecked_hover@rainbowpie_ui_toggle.toggle_tab_panel": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_default_color|default": "$rainbowpie_ui_theme_toggle_text_default_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_hover_color|default": "$rainbowpie_ui_theme_toggle_text_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_pressed_color|default": "$rainbowpie_ui_theme_toggle_text_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_alpha",
    // Button State
    "$hover_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_tab_unchecked_locked@rainbowpie_ui_toggle.toggle_tab_panel": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_color": "$rainbowpie_ui_theme_toggle_text_locked_checked_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_color|default": "$rainbowpie_ui_theme_toggle_background_locked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_alpha|default": "$rainbowpie_ui_theme_toggle_background_locked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_alpha",
    // Button State
    "$locked_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_tab_unchecked_locked_hover@rainbowpie_ui_toggle.toggle_tab_panel": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_color": "$rainbowpie_ui_theme_toggle_text_locked_checked_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_color|default": "$rainbowpie_ui_theme_toggle_background_locked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_alpha|default": "$rainbowpie_ui_theme_toggle_background_locked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_alpha",
    // Button State
    "$locked_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_tab_checked@rainbowpie_ui_toggle.toggle_tab_panel": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_default_color|default": "$rainbowpie_ui_theme_toggle_text_checked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_hover_color|default": "$rainbowpie_ui_theme_toggle_text_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_pressed_color|default": "$rainbowpie_ui_theme_toggle_text_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color|default": "$rainbowpie_ui_theme_toggle_background_checked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_alpha",
    // Button State
    "$default_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_tab_checked_hover@rainbowpie_ui_toggle.toggle_tab_panel": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_default_color|default": "$rainbowpie_ui_theme_toggle_text_checked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_hover_color|default": "$rainbowpie_ui_theme_toggle_text_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_pressed_color|default": "$rainbowpie_ui_theme_toggle_text_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color|default": "$rainbowpie_ui_theme_toggle_background_checked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_alpha",
    // Button State
    "$hover_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_tab_checked_locked@rainbowpie_ui_toggle.toggle_tab_panel": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_color": "$rainbowpie_ui_theme_toggle_text_locked_checked_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_color|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_btbar_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_alpha|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_btbar_alpha",
    // Button State
    "$locked_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_tab_checked_locked_hover@rainbowpie_ui_toggle.toggle_tab_panel": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_color": "$rainbowpie_ui_theme_toggle_text_locked_checked_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_color|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_btbar_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_alpha|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_btbar_alpha",
    // Button State
    "$locked_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true
  }
}

module

chest_fastpick.json RainbowPie UI · module

필요한 부분만 참고해서 가져가세요.

// 예제: chest_fastpick.json
// 분류: RainbowPie UI / module
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_module_chest_fastpick",

  // ???/?? ??
  "pickup_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/chest_pickup')",
    // ?? (R,G,B,A)
    "color": "$text_color"
  },

  // ???/?? ??
  "putin_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/chest_putin')",
    // ?? (R,G,B,A)
    "color": "$text_color"
  },

  // ???/?? ??
  "drop_icon": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$count_text|default": "x1",
    // 오버라이드 가능한 변수
    "$container_item_id|default": "$rainbowpie_ui_flag_item_chest",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container@crafting.item_renderer": {
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#item_id_aux": "($container_item_id * 65536)"
          }
        }
      },
      {
        // ???/?? ??
        "down_arrow": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 가로/세로 크기
          "size": [ "62.5%", "100%x" ],
          // 기준점에서 이동하는 거리
          "offset": [ "20%x", 0 ],
          // 사용할 이미지 경로
          "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_down')",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      }
    ]
  },

  // ???/?? ??
  "slot_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 0 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "input_panel": {
          // 마우스/커서 따라다니는 패널
          "type": "input_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%x" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // ?? ??
          "consume_hover_events": false,
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 오버라이드 가능한 변수
          "$button_take_all_place_all|default": "button.container_auto_place",
          // 오버라이드 가능한 변수
          "$button_auto_place|default": "rainbowpie.placeholder",
          // 오버라이드 가능한 변수
          "$button_mapping_type|default": "pressed",
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#is_query_target": true
          },
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "$item_collection_name"
            },
            {
              // 가져올 값 이름
              "binding_name": "#item_id_aux",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$item_collection_name"
            },
            {
              // 가져올 값 이름
              "binding_name": "#hover_text",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$item_collection_name"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('\"' + #hover_text - '\n' - '§0' - '§1' - '§2' - '§3' - '§4' - '§5' - '§6' - '§7' - '§8' - '§9' - '§a' - '§b' - '§c' - '§d' - '§e' - '§f' - '§g' - '§h' - '§i' - '§j' - '§k' - '§l' - '§m' - '§n' - '§o' - '§p' - '§q' - '§r' - '§s' - '§t' - '§u' - '§v' - '§w' - '§x' - '§y' - '§z' + '\"')",
              // 결과가 들어갈 속성
              "target_property_name": "#formatted_name",
              // 완전히 제거(공간도 없음)
              "ignored": "((not $rainbowpie_ui_flag_d6bb54d8) or (not $rainbowpie_ui_flag_84df7492))"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "inventoryui_search_text_box_display_text",
              // 계산식/참조 값
              "source_property_name": "#item_name",
              // 결과가 들어갈 속성
              "target_property_name": "#query_text",
              // 완전히 제거(공간도 없음)
              "ignored": "((not $rainbowpie_ui_flag_d6bb54d8) or (not $rainbowpie_ui_flag_84df7492))"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#query_text = '') or (not ((#formatted_name - #query_text) = #formatted_name)))",
              // 결과가 들어갈 속성
              "target_property_name": "#is_query_target",
              // 완전히 제거(공간도 없음)
              "ignored": "((not $rainbowpie_ui_flag_d6bb54d8) or (not $rainbowpie_ui_flag_84df7492))"
            },
            {
              // 가져올 값 이름
              "binding_name": "#inventory_selected_item"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "container_bindings_panel",
              // 계산식/참조 값
              "source_property_name": "#container_selected_item_id_aux",
              // 결과가 들어갈 속성
              "target_property_name": "#container_selected_item_id_aux"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "inventory_bindings_panel",
              // 계산식/참조 값
              "source_property_name": "#inventory_selected_item_id_aux",
              // 결과가 들어갈 속성
              "target_property_name": "#inventory_selected_item_id_aux"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "hotbar_bindings_panel",
              // 계산식/참조 값
              "source_property_name": "#hotbar_selected_item_id_aux",
              // 결과가 들어갈 속성
              "target_property_name": "#hotbar_selected_item_id_aux"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#container_selected_item_id_aux + #inventory_selected_item_id_aux + #hotbar_selected_item_id_aux)",
              // 결과가 들어갈 속성
              "target_property_name": "#selected_item_id_aux"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(((#selected_item_id_aux = 0) or (#selected_item_id_aux = #item_id_aux)) and ((#inventory_selected_item = -1) or (#inventory_selected_item = #item_id_aux)))",
              // 결과가 들어갈 속성
              "target_property_name": "#is_selected_item"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((not (#item_id_aux = -1)) and #is_query_target and #is_selected_item)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ],
          // 입력 키/버튼과 동작 연결
          "button_mappings": [
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_select",
              // 어떤 동작을 실행할지
              "to_button_id": "$button_take_all_place_all",
              // 입력 시점(pressed 등)
              "mapping_type": "$button_mapping_type",
              // ?? ??
              "consume_event": false
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_ok",
              // 어떤 동작을 실행할지
              "to_button_id": "$button_take_all_place_all",
              // 입력 시점(pressed 등)
              "mapping_type": "$button_mapping_type",
              // ?? ??
              "consume_event": false
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_auto_place",
              // 어떤 동작을 실행할지
              "to_button_id": "$button_auto_place",
              // 입력 시점(pressed 등)
              "mapping_type": "$button_mapping_type",
              // ?? ??
              "consume_event": false
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.controller_secondary_select",
              // 어떤 동작을 실행할지
              "to_button_id": "$button_auto_place",
              // 입력 시점(pressed 등)
              "mapping_type": "$button_mapping_type",
              // ?? ??
              "consume_event": false
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "binding_slot_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#is_selected_slot",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$item_collection_name"
      },
      {
        // 가져올 값 이름
        "binding_name": "#item_id_aux",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$item_collection_name"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#item_id_aux * #is_selected_slot)",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux"
      }
    ]
  },

  // ???/?? ??
  "container_bindings_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "container_items",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$item_collection_name": "container_items",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_53@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 53
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_52@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 52
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_51@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 51
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_50@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 50
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_49@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 49
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_48@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 48
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_47@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 47
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_46@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 46
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_45@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 45
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_44@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 44
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_43@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 43
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_42@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 42
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_41@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 41
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_40@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 40
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_39@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 39
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_38@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 38
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_37@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 37
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_36@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 36
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_35@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 35
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_34@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 34
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_33@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 33
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_32@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 32
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_31@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 31
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_30@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 30
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_29@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 29
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_28@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 28
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_27@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 27
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_26@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 26
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_25@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 25
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_24@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 24
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_23@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 23
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_22@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 22
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_21@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 21
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_20@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 20
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_19@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 19
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_18@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 18
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_17@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 17
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_16@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 16
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_15@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 15
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_14@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 14
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_13@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 13
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_12@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 12
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_11@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 11
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_10@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 10
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_9@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 9
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_8@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 8
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_7@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_6@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_5@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_4@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_3@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_2@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_1@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_slot_0@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 0
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_53",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_53"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_52",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_52"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_51",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_51"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_50",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_50"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_49",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_49"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_48",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_48"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_47",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_47"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_46",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_46"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_45",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_45"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_44",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_44"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_43",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_43"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_42",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_42"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_41",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_41"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_40",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_40"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_39",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_39"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_38",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_38"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_37",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_37"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_36",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_36"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_35",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_35"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_34",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_34"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_33",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_33"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_32",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_32"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_31",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_31"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_30",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_30"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_29",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_29"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_28",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_28"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_27",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_27"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_26",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_26"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_25",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_25"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_24",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_24"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_23",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_23"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_22",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_22"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_21",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_21"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_20",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_20"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_19",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_19"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_18",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_18"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_17",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_17"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_16",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_16"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_15",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_15"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_14",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_14"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_13",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_13"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_12",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_12"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_11",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_11"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_10",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_10"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_9",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_9"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_8",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_8"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_7",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_7"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_6",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_6"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_5",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_5"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_4",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_4"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_3",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_3"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_2",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_2"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_1",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_1"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_0",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_0"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#is_selected_slot_0 or #is_selected_slot_1 or #is_selected_slot_2 or #is_selected_slot_3 or #is_selected_slot_4 or #is_selected_slot_5 or #is_selected_slot_6 or #is_selected_slot_7 or #is_selected_slot_8 or #is_selected_slot_9 or #is_selected_slot_10 or #is_selected_slot_11 or #is_selected_slot_12 or #is_selected_slot_13 or #is_selected_slot_14 or #is_selected_slot_15 or #is_selected_slot_16 or #is_selected_slot_17 or #is_selected_slot_18 or #is_selected_slot_19 or #is_selected_slot_20 or #is_selected_slot_21 or #is_selected_slot_22 or #is_selected_slot_23 or #is_selected_slot_24 or #is_selected_slot_25 or #is_selected_slot_26 or #is_selected_slot_27 or #is_selected_slot_28 or #is_selected_slot_29 or #is_selected_slot_30 or #is_selected_slot_31 or #is_selected_slot_32 or #is_selected_slot_33 or #is_selected_slot_34 or #is_selected_slot_35 or #is_selected_slot_36 or #is_selected_slot_37 or #is_selected_slot_38 or #is_selected_slot_39 or #is_selected_slot_40 or #is_selected_slot_41 or #is_selected_slot_42 or #is_selected_slot_43 or #is_selected_slot_44 or #is_selected_slot_45 or #is_selected_slot_46 or #is_selected_slot_47 or #is_selected_slot_48 or #is_selected_slot_49 or #is_selected_slot_50 or #is_selected_slot_51 or #is_selected_slot_52 or #is_selected_slot_53)",
        // 결과가 들어갈 속성
        "target_property_name": "#is_container_slot_selected"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_53",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_53"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_52",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_52"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_51",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_51"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_50",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_50"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_49",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_49"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_48",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_48"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_47",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_47"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_46",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_46"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_45",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_45"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_44",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_44"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_43",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_43"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_42",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_42"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_41",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_41"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_40",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_40"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_39",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_39"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_38",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_38"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_37",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_37"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_36",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_36"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_35",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_35"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_34",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_34"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_33",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_33"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_32",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_32"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_31",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_31"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_30",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_30"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_29",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_29"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_28",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_28"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_27",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_27"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_26",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_26"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_25",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_25"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_24",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_24"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_23",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_23"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_22",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_22"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_21",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_21"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_20",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_20"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_19",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_19"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_18",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_18"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_17",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_17"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_16",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_16"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_15",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_15"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_14",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_14"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_13",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_13"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_12",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_12"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_11",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_11"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_10",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_10"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_9",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_9"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_8",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_8"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_7",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_7"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_6",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_6"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_5",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_5"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_4",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_4"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_3",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_3"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_2",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_2"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_1",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_1"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "container_bindings_slot_0",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_0"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#selected_item_id_aux_0 + #selected_item_id_aux_1 + #selected_item_id_aux_2 + #selected_item_id_aux_3 + #selected_item_id_aux_4 + #selected_item_id_aux_5 + #selected_item_id_aux_6 + #selected_item_id_aux_7 + #selected_item_id_aux_8 + #selected_item_id_aux_9 + #selected_item_id_aux_10 + #selected_item_id_aux_11 + #selected_item_id_aux_12 + #selected_item_id_aux_13 + #selected_item_id_aux_14 + #selected_item_id_aux_15 + #selected_item_id_aux_16 + #selected_item_id_aux_17 + #selected_item_id_aux_18 + #selected_item_id_aux_19 + #selected_item_id_aux_20 + #selected_item_id_aux_21 + #selected_item_id_aux_22 + #selected_item_id_aux_23 + #selected_item_id_aux_24 + #selected_item_id_aux_25 + #selected_item_id_aux_26 + #selected_item_id_aux_27 + #selected_item_id_aux_28 + #selected_item_id_aux_29 + #selected_item_id_aux_30 + #selected_item_id_aux_31 + #selected_item_id_aux_32 + #selected_item_id_aux_33 + #selected_item_id_aux_34 + #selected_item_id_aux_35 + #selected_item_id_aux_36 + #selected_item_id_aux_37 + #selected_item_id_aux_38 + #selected_item_id_aux_39 + #selected_item_id_aux_40 + #selected_item_id_aux_41 + #selected_item_id_aux_42 + #selected_item_id_aux_43 + #selected_item_id_aux_44 + #selected_item_id_aux_45 + #selected_item_id_aux_46 + #selected_item_id_aux_47 + #selected_item_id_aux_48 + #selected_item_id_aux_49 + #selected_item_id_aux_50 + #selected_item_id_aux_51 + #selected_item_id_aux_52 + #selected_item_id_aux_53)",
        // 결과가 들어갈 속성
        "target_property_name": "#container_selected_item_id_aux"
      }
    ]
  },

  // ???/?? ??
  "inventory_bindings_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "inventory_items",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$item_collection_name": "inventory_items",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_26@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 26
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_25@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 25
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_24@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 24
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_23@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 23
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_22@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 22
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_21@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 21
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_20@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 20
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_19@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 19
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_18@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 18
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_17@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 17
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_16@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 16
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_15@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 15
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_14@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 14
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_13@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 13
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_12@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 12
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_11@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 11
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_10@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 10
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_9@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 9
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_8@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 8
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_7@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_6@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_5@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_4@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_3@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_2@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_1@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_0@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 0
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_26",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_26"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_25",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_25"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_24",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_24"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_23",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_23"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_22",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_22"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_21",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_21"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_20",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_20"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_19",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_19"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_18",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_18"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_17",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_17"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_16",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_16"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_15",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_15"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_14",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_14"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_13",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_13"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_12",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_12"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_11",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_11"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_10",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_10"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_9",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_9"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_8",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_8"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_7",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_7"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_6",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_6"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_5",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_5"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_4",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_4"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_3",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_3"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_2",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_2"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_1",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_1"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_0",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_0"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#is_selected_slot_0 or #is_selected_slot_1 or #is_selected_slot_2 or #is_selected_slot_3 or #is_selected_slot_4 or #is_selected_slot_5 or #is_selected_slot_6 or #is_selected_slot_7 or #is_selected_slot_8 or #is_selected_slot_9 or #is_selected_slot_10 or #is_selected_slot_11 or #is_selected_slot_12 or #is_selected_slot_13 or #is_selected_slot_14 or #is_selected_slot_15 or #is_selected_slot_16 or #is_selected_slot_17 or #is_selected_slot_18 or #is_selected_slot_19 or #is_selected_slot_20 or #is_selected_slot_21 or #is_selected_slot_22 or #is_selected_slot_23 or #is_selected_slot_24 or #is_selected_slot_25 or #is_selected_slot_26)",
        // 결과가 들어갈 속성
        "target_property_name": "#is_inventory_slot_selected"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_26",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_26"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_25",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_25"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_24",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_24"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_23",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_23"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_22",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_22"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_21",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_21"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_20",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_20"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_19",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_19"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_18",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_18"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_17",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_17"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_16",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_16"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_15",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_15"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_14",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_14"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_13",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_13"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_12",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_12"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_11",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_11"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_10",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_10"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_9",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_9"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_8",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_8"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_7",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_7"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_6",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_6"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_5",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_5"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_4",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_4"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_3",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_3"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_2",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_2"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_1",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_1"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_0",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_0"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#selected_item_id_aux_0 + #selected_item_id_aux_1 + #selected_item_id_aux_2 + #selected_item_id_aux_3 + #selected_item_id_aux_4 + #selected_item_id_aux_5 + #selected_item_id_aux_6 + #selected_item_id_aux_7 + #selected_item_id_aux_8 + #selected_item_id_aux_9 + #selected_item_id_aux_10 + #selected_item_id_aux_11 + #selected_item_id_aux_12 + #selected_item_id_aux_13 + #selected_item_id_aux_14 + #selected_item_id_aux_15 + #selected_item_id_aux_16 + #selected_item_id_aux_17 + #selected_item_id_aux_18 + #selected_item_id_aux_19 + #selected_item_id_aux_20 + #selected_item_id_aux_21 + #selected_item_id_aux_22 + #selected_item_id_aux_23 + #selected_item_id_aux_24 + #selected_item_id_aux_25 + #selected_item_id_aux_26)",
        // 결과가 들어갈 속성
        "target_property_name": "#inventory_selected_item_id_aux"
      }
    ]
  },

  // ???/?? ??
  "hotbar_bindings_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "hotbar_items",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$item_collection_name": "hotbar_items",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_8@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 8
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_7@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_6@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_5@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_4@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_3@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_2@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_1@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_0@rainbowpie_module_chest_fastpick.binding_slot_item": {
          // ?? ??
          "collection_index": 0
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_8",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_8"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_7",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_7"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_6",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_6"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_5",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_5"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_4",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_4"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_3",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_3"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_2",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_2"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_1",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_1"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_0",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_0"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#is_selected_slot_0 or #is_selected_slot_1 or #is_selected_slot_2 or #is_selected_slot_3 or #is_selected_slot_4 or #is_selected_slot_5 or #is_selected_slot_6 or #is_selected_slot_7 or #is_selected_slot_8)",
        // 결과가 들어갈 속성
        "target_property_name": "#is_hotbar_slot_selected"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_8",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_8"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_7",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_7"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_6",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_6"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_5",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_5"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_4",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_4"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_3",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_3"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_2",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_2"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_1",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_1"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_0",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_0"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#selected_item_id_aux_0 + #selected_item_id_aux_1 + #selected_item_id_aux_2 + #selected_item_id_aux_3 + #selected_item_id_aux_4 + #selected_item_id_aux_5 + #selected_item_id_aux_6 + #selected_item_id_aux_7 + #selected_item_id_aux_8)",
        // 결과가 들어갈 속성
        "target_property_name": "#hotbar_selected_item_id_aux"
      }
    ]
  },

  // ???/?? ??
  "pickup_input_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "container_items",
    // 오버라이드 가능한 변수
    "$item_collection_name": "container_items",
    // 오버라이드 가능한 변수
    "$large_chest|default": false,
    // 오버라이드 가능한 변수
    "$redstone_container|default": false,
    // 오버라이드 가능한 변수
    "$redstone_container_hopper|default": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_53@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 53
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_52@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 52
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_51@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 51
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_50@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 50
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_49@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 49
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_48@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 48
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_47@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 47
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_46@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 46
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_45@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 45
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_44@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 44
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_43@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 43
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_42@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 42
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_41@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 41
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_40@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 40
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_39@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 39
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_38@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 38
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_37@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 37
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_36@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 36
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_35@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 35
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_34@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 34
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_33@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 33
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_32@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 32
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_31@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 31
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_30@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 30
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_29@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 29
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_28@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 28
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_27@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $large_chest or $redstone_container)",
          // ?? ??
          "collection_index": 27
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_26@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 26
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_25@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 25
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_24@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 24
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_23@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 23
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_22@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 22
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_21@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 21
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_20@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 20
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_19@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 19
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_18@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 18
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_17@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 17
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_16@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 16
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_15@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 15
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_14@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 14
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_13@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 13
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_12@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 12
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_11@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 11
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_10@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 10
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_9@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container)",
          // ?? ??
          "collection_index": 9
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_8@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container_hopper)",
          // ?? ??
          "collection_index": 8
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_7@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container_hopper)",
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_6@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container_hopper)",
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_5@rainbowpie_module_chest_fastpick.slot_item": {
          // 완전히 제거(공간도 없음)
          "ignored": "($redstone_container_hopper)",
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_4@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_3@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_2@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_1@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_slot_0@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 0
        }
      }
    ]
  },

  // ???/?? ??
  "putin_input_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "inventory_items",
    // 오버라이드 가능한 변수
    "$item_collection_name": "inventory_items",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_26@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 26
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_25@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 25
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_24@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 24
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_23@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 23
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_22@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 22
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_21@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 21
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_20@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 20
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_19@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 19
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_18@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 18
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_17@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 17
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_16@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 16
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_15@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 15
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_14@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 14
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_13@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 13
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_12@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 12
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_11@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 11
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_10@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 10
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_9@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 9
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_8@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 8
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_7@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_6@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_5@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_4@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_3@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_2@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_1@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_0@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 0
        }
      }
    ]
  },

  // ???/?? ??
  "putin_hotbar_input_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "hotbar_items",
    // 오버라이드 가능한 변수
    "$item_collection_name": "hotbar_items",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_8@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 8
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_7@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_6@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_5@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_4@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_3@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_2@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_1@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_0@rainbowpie_module_chest_fastpick.slot_item": {
          // ?? ??
          "collection_index": 0
        }
      }
    ]
  },

  // ???/?? ??
  "chest_fastpick_redstone": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$redstone_container|default": false,
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_module_chest_fastpick)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "chest_fastpick@rainbowpie_module_chest_fastpick.chest_fastpick": {
          // 완전히 제거(공간도 없음)
          "ignored": "((not $rainbowpie_ui_module_chest_fastpick) or (not ($redstone_container and $rainbowpie_ui_moduleflag_chest_fastpick_redstone_blocks)))"
        }
      }
    ]
  },

  // ???/?? ??
  "chest_fastpick": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_module_chest_fastpick)",

    // 오버라이드 가능한 변수
    "$drop_button_size|default": [ 22, 22 ],
    // 오버라이드 가능한 변수
    "$drop_button_offset|default": [ 20, -80 ],
    // 오버라이드 가능한 변수
    "$putin_button_size|default": [ 22, 22 ],
    // 오버라이드 가능한 변수
    "$putin_button_offset|default": [ 20, -26 ],
    // 오버라이드 가능한 변수
    "$pickup_button_size|default": [ 22, 22 ],
    // 오버라이드 가능한 변수
    "$pickup_button_offset|default": [ 20, -2 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_bindings_panel@rainbowpie_module_chest_fastpick.container_bindings_panel": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_panel@rainbowpie_module_chest_fastpick.inventory_bindings_panel": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_panel@rainbowpie_module_chest_fastpick.hotbar_bindings_panel": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "drop_input_panel@rainbowpie_module_chest_fastpick.pickup_input_panel": {
          // 오버라이드 가능한 변수
          "$button_take_all_place_all": "button.drop_all",
          // 가로/세로 크기
          "size": "$drop_button_size",
          // 기준점에서 이동하는 거리
          "offset": "$drop_button_offset",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 50,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#inventory_selected_item"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "container_bindings_panel",
              // 계산식/참조 값
              "source_property_name": "#is_container_slot_selected",
              // 결과가 들어갈 속성
              "target_property_name": "#is_container_slot_selected"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "inventory_bindings_panel",
              // 계산식/참조 값
              "source_property_name": "#is_inventory_slot_selected",
              // 결과가 들어갈 속성
              "target_property_name": "#is_inventory_slot_selected"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "hotbar_bindings_panel",
              // 계산식/참조 값
              "source_property_name": "#is_hotbar_slot_selected",
              // 결과가 들어갈 속성
              "target_property_name": "#is_hotbar_slot_selected"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((not (#is_container_slot_selected or #is_inventory_slot_selected or #is_hotbar_slot_selected)) and (#inventory_selected_item = -1))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "putin_input_panel@rainbowpie_module_chest_fastpick.putin_input_panel": {
          // 가로/세로 크기
          "size": "$putin_button_size",
          // 기준점에서 이동하는 거리
          "offset": "$putin_button_offset",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 50
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "putin_hotbar_input_panel@rainbowpie_module_chest_fastpick.putin_hotbar_input_panel": {
          // 오버라이드 가능한 변수
          "$button_take_all_place_all": "rainbowpie.placeholder",
          // 오버라이드 가능한 변수
          "$button_auto_place": "button.container_auto_place",
          // 오버라이드 가능한 변수
          "$button_mapping_type": "pressed",
          // 가로/세로 크기
          "size": "$putin_button_size",
          // 기준점에서 이동하는 거리
          "offset": "$putin_button_offset",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 50,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "(not #using_touch)",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "putin_hotbar_input_panel_touch@rainbowpie_module_chest_fastpick.putin_hotbar_input_panel": {
          // 오버라이드 가능한 변수
          "$button_take_all_place_all": "button.container_auto_place",
          // 오버라이드 가능한 변수
          "$button_auto_place": "rainbowpie.placeholder",
          // 오버라이드 가능한 변수
          "$button_mapping_type": "double_pressed",
          // 가로/세로 크기
          "size": "$putin_button_size",
          // 기준점에서 이동하는 거리
          "offset": "$putin_button_offset",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 50,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#using_touch",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "pickup_input_panel@rainbowpie_module_chest_fastpick.pickup_input_panel": {
          // 가로/세로 크기
          "size": "$pickup_button_size",
          // 기준점에서 이동하는 거리
          "offset": "$pickup_button_offset",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 50
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "drop_button@common_buttons.light_content_button": {
          // 오버라이드 가능한 변수
          "$button_focus_precedence": -1,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_button_desc_enabled": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_button_desc_text": "rainbowpie.ui.chest.fastpick.dropall",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_button_hover_border_layer": 30,
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "rainbowpie.chestdropall",
          // 오버라이드 가능한 변수
          "$button_content": "rainbowpie_module_chest_fastpick.drop_icon",
          // ?? ??
          "consume_hover_events": false,
          // 가로/세로 크기
          "size": "$drop_button_size",
          // 기준점에서 이동하는 거리
          "offset": "$drop_button_offset",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#inventory_selected_item"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "container_bindings_panel",
              // 계산식/참조 값
              "source_property_name": "#is_container_slot_selected",
              // 결과가 들어갈 속성
              "target_property_name": "#is_container_slot_selected"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "inventory_bindings_panel",
              // 계산식/참조 값
              "source_property_name": "#is_inventory_slot_selected",
              // 결과가 들어갈 속성
              "target_property_name": "#is_inventory_slot_selected"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "hotbar_bindings_panel",
              // 계산식/참조 값
              "source_property_name": "#is_hotbar_slot_selected",
              // 결과가 들어갈 속성
              "target_property_name": "#is_hotbar_slot_selected"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((not (#is_container_slot_selected or #is_inventory_slot_selected or #is_hotbar_slot_selected)) and (#inventory_selected_item = -1))",
              // 결과가 들어갈 속성
              "target_property_name": "#enabled"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "putin_button@common_buttons.light_content_button": {
          // 오버라이드 가능한 변수
          "$button_focus_precedence": -1,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_button_desc_enabled": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_button_desc_text": "rainbowpie.ui.chest.fastpick.putall",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_button_hover_border_layer": 30,
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "rainbowpie.chestputin",
          // 오버라이드 가능한 변수
          "$button_content": "rainbowpie_module_chest_fastpick.putin_icon",
          // ?? ??
          "consume_hover_events": false,
          // 가로/세로 크기
          "size": "$putin_button_size",
          // 기준점에서 이동하는 거리
          "offset": "$putin_button_offset",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "pickup_button@common_buttons.light_content_button": {
          // 오버라이드 가능한 변수
          "$button_focus_precedence": -1,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_button_desc_enabled": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_button_desc_text": "rainbowpie.ui.chest.fastpick.pickall",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_button_hover_border_layer": 30,
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "rainbowpie.chestpickup",
          // 오버라이드 가능한 변수
          "$button_content": "rainbowpie_module_chest_fastpick.pickup_icon",
          // ?? ??
          "consume_hover_events": false,
          // 가로/세로 크기
          "size": "$pickup_button_size",
          // 기준점에서 이동하는 거리
          "offset": "$pickup_button_offset",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  }
}

hud_block_counter.json RainbowPie UI · module

필요한 부분만 참고해서 가져가세요.

// 예제: hud_block_counter.json
// 분류: RainbowPie UI / module
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_module_hud_block_counter",

  // 다른 템플릿을 가져와서 확장(상속)
  "hud_block_counter@rainbowpieui_compatibility_config.compatibility_variables": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_module_hud_block_counter)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_item_id_aux@rainbowpie_modulelib_hud_item.selected_slot_item_id_aux": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_item_count@rainbowpie_modulelib_hud_item.selected_slot_item_count": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "block_count@rainbowpie_modulelib_hud_item.hotbar_item_count": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_inventory_target_item_ids": "$rainbowpie_ui_moduleflag_hud_block_counter_blockids"
        }
      },
      {
        // ???/?? ??
        "counter_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 가로/세로 크기
          "size": [ "100%c", "100%c" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 18 ],
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "tip_text_background": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100%c + 4px", "100%c + 4px" ],
                // 사용할 이미지 경로
                "texture": "($rainbowpie_ui_path_home + '/r_white')",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_text_background_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_text_background_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 30,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "stack_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 가로/세로 크기
                      "size": [ "100%c", 12 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "item_renderer@rainbowpie_ui_common.item_renderer": {
                            // 가로/세로 크기
                            "size": [ "100%y", "100%"  ],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // ?? ??
                                "source_control_name": "selected_slot_item_id_aux",
                                // 계산식/참조 값
                                "source_property_name": "#selected_item_id_aux_int",
                                // 결과가 들어갈 속성
                                "target_property_name": "#item_id_aux"
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "padding_0": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 2, 2 ]
                          }
                        },
                        {
                          // ???/?? ??
                          "selected_count_text_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%c", "100%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "count_text@rainbowpie_ui_common.text_label": {
                                  // 보여줄 글자
                                  "text": "#selected_item_stack_count_str",
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // ?? ??
                                      "source_control_name": "selected_slot_item_count",
                                      // 계산식/참조 값
                                      "source_property_name": "('x' + #selected_item_stack_count_int)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#selected_item_stack_count_str"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // ?? ??
                                      "source_control_name": "selected_slot_item_count",
                                      // 계산식/참조 값
                                      "source_property_name": "(not ((#selected_item_stack_count_int = 16) or (#selected_item_stack_count_int < 16)))",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#visible"
                                    }
                                  ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "count_text_red@rainbowpie_ui_common.text_label": {
                                  // 보여줄 글자
                                  "text": "#selected_item_stack_count_str",
                                  // ?? (R,G,B,A)
                                  "color": [ 1.0, 0.333, 0.333 ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // ?? ??
                                      "source_control_name": "selected_slot_item_count",
                                      // 계산식/참조 값
                                      "source_property_name": "('x' + #selected_item_stack_count_int)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#selected_item_stack_count_str"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // ?? ??
                                      "source_control_name": "selected_slot_item_count",
                                      // 계산식/참조 값
                                      "source_property_name": "((#selected_item_stack_count_int = 16) or (#selected_item_stack_count_int < 16))",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#visible"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "count_text_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%c", "100%" ],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // ?? ??
                                "source_control_name": "block_count",
                                // 계산식/참조 값
                                "source_property_name": "#hotbar_target_item_total_count_int",
                                // 결과가 들어갈 속성
                                "target_property_name": "#hotbar_target_item_total_count_int"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // ?? ??
                                "source_control_name": "selected_slot_item_count",
                                // 계산식/참조 값
                                "source_property_name": "#selected_item_stack_count_int",
                                // 결과가 들어갈 속성
                                "target_property_name": "#selected_item_stack_count_int"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(not (#hotbar_target_item_total_count_int = #selected_item_stack_count_int))",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "count_text@rainbowpie_ui_common.text_label": {
                                  // 보여줄 글자
                                  "text": "#hotbar_target_item_total_count_int",
                                  // ?? (R,G,B,A)
                                  "color": [ 0.7, 0.7, 0.7 ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // ?? ??
                                      "source_control_name": "block_count",
                                      // 계산식/참조 값
                                      "source_property_name": "('|x' + #hotbar_target_item_total_count_int)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#hotbar_target_item_total_count_int"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "selected_slot_item_id_aux",
              // 계산식/참조 값
              "source_property_name": "#selected_item_id_aux_int",
              // 결과가 들어갈 속성
              "target_property_name": "#selected_item_id_aux_int"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('aux' + #selected_item_id_aux_int + ',')",
              // 결과가 들어갈 속성
              "target_property_name": "#selected_item_id_aux_str"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#selected_item_id_aux_int / 65536)",
              // 결과가 들어갈 속성
              "target_property_name": "#selected_item_id_int"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('id' + #selected_item_id_int + ',')",
              // 결과가 들어갈 속성
              "target_property_name": "#selected_item_id_str"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (($rainbowpie_ui_moduleflag_hud_block_counter_blockids - #selected_item_id_aux_str) = $rainbowpie_ui_moduleflag_hud_block_counter_blockids))",
              // 결과가 들어갈 속성
              "target_property_name": "#is_match_aux"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (($rainbowpie_ui_moduleflag_hud_block_counter_blockids - #selected_item_id_str) = $rainbowpie_ui_moduleflag_hud_block_counter_blockids))",
              // 결과가 들어갈 속성
              "target_property_name": "#is_match_id"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#is_match_aux or #is_match_id)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  }
}

hud_bow_helper.json RainbowPie UI · module

필요한 부분만 참고해서 가져가세요.

// 예제: hud_bow_helper.json
// 분류: RainbowPie UI / module
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_module_hud_bow_helper",

  // ???/?? ??
  "arrow_slot": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "item_count_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "item_renderer@rainbowpie_ui_common.item_renderer": {
                // 가로/세로 크기
                "size": [ "100%y", "100%"  ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 가져올 값 이름
                    "binding_name": "#item_id_aux",
                    // 목록 이름
                    "binding_collection_name": "hotbar_items"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_0": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 2, 2 ]
              }
            },
            {
              // ???/?? ??
              "count_text_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%c", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "count_text@rainbowpie_ui_common.text_label": {
                      // 보여줄 글자
                      "text": "#inventory_stack_count_str",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#inventory_stack_count",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "hotbar_items"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#inventory_stack_count = 0)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#is_single_item"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "('x' + ((#is_single_item * 1) + #inventory_stack_count))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#inventory_stack_count_str"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#item_id_aux",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "hotbar_items"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('aux' + #item_id_aux + ',')",
        // 결과가 들어갈 속성
        "target_property_name": "#item_id_aux_str"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#item_id_aux / 65536)",
        // 결과가 들어갈 속성
        "target_property_name": "#item_id"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('id' + #item_id + ',')",
        // 결과가 들어갈 속성
        "target_property_name": "#item_id_str"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not (($rainbowpie_ui_moduleflag_hud_bow_helper_arrowids - #item_id_aux_str) = $rainbowpie_ui_moduleflag_hud_bow_helper_arrowids))",
        // 결과가 들어갈 속성
        "target_property_name": "#is_match_aux"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not (($rainbowpie_ui_moduleflag_hud_bow_helper_arrowids - #item_id_str) = $rainbowpie_ui_moduleflag_hud_bow_helper_arrowids))",
        // 결과가 들어갈 속성
        "target_property_name": "#is_match_id"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#is_match_aux or #is_match_id)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "arrow_slot_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "hotbar_items",
    // 가로/세로 크기
    "size": [ "100%cm", "100%" ],
    // ?? ????
    "clips_children": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_0@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 0
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_1@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_2@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_3@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_4@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_5@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_6@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_7@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_8@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 8
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_9@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 9
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_10@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 10
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_11@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 11
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_12@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 12
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_13@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 13
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_14@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 14
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_15@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 15
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_16@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 16
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_17@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 17
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_18@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 18
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_19@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 19
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_20@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 20
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_21@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 21
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_22@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 22
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_23@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 23
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_24@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 24
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_25@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 25
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_26@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 26
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_27@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 27
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_28@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 28
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_29@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 29
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_30@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 30
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_31@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 31
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_32@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 32
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_33@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 33
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_34@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 34
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_slot_35@rainbowpie_module_hud_bow_helper.arrow_slot": {
          // ?? ??
          "collection_index": 35
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "hud_bow_helper@rainbowpieui_compatibility_config.compatibility_variables": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_module_hud_bow_helper)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_item_id_aux@rainbowpie_modulelib_hud_item.selected_slot_item_id_aux": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow_count@rainbowpie_modulelib_hud_item.inventory_item_count": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_inventory_target_item_ids": "$rainbowpie_ui_moduleflag_hud_bow_helper_arrowids"
        }
      },
      {
        // ???/?? ??
        "counter_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "$anchor",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "$anchor",
          // 가로/세로 크기
          "size": "$size",
          // 기준점에서 이동하는 거리
          "offset": "$offset",
          // 보이기/숨기기(공간 유지)
          "visible": false,

          // 오버라이드 가능한 변수
          "$anchor": "bottom_left",
          // 오버라이드 가능한 변수
          "$size": [ "100%c", "100%c" ],
          // 오버라이드 가능한 변수
          "$offset": [ "50% + 120px", -6 ],
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$rainbowpie_ui_feature_hud_durability", // HUD Durability
              // 오버라이드 가능한 변수
              "$anchor": "bottom_right",
              // 오버라이드 가능한 변수
              "$offset": [ -7, -26 ]
            }
          ],

          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "tip_text_background": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100%c + 4px", "100%c + 4px" ],
                // 사용할 이미지 경로
                "texture": "($rainbowpie_ui_path_home + '/r_white')",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_text_background_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_text_background_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 30,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "stack_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 가로/세로 크기
                      "size": [ "100%c", 12 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "no_arrows_text_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%c", "100%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "count_text@rainbowpie_ui_common.text_label": {
                                  // 보여줄 글자
                                  "text": "No arrows",
                                  // ?? (R,G,B,A)
                                  "color": [ 1.0, 0.333, 0.333 ]
                                }
                              }
                            ],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // ?? ??
                                "source_control_name": "arrow_count",
                                // 계산식/참조 값
                                "source_property_name": "(#inventory_target_item_total_count_int = 0)",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "count_title_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%c", 12 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "arrow_panel@rainbowpie_module_hud_bow_helper.arrow_slot_panel": {}
                              }
                            ],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // ?? ??
                                "source_control_name": "arrow_count",
                                // 계산식/참조 값
                                "source_property_name": "(not (#inventory_target_item_total_count_int = 0))",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "count_text_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%c", "100%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "count_text@rainbowpie_ui_common.text_label": {
                                  // 보여줄 글자
                                  "text": "#arrow_item_total_count_str",
                                  // ?? (R,G,B,A)
                                  "color": [ 0.7, 0.7, 0.7 ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // ?? ??
                                      "source_control_name": "arrow_count",
                                      // 계산식/참조 값
                                      "source_property_name": "('|x' + #inventory_target_item_total_count_int)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#arrow_item_total_count_str"
                                    }
                                  ]
                                }
                              }
                            ],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // ?? ??
                                "source_control_name": "arrow_count",
                                // 계산식/참조 값
                                "source_property_name": "(not (#inventory_target_item_total_count_int = 0))",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "selected_slot_item_id_aux",
              // 계산식/참조 값
              "source_property_name": "#selected_item_id_aux_int",
              // 결과가 들어갈 속성
              "target_property_name": "#selected_item_id_aux_int"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('aux' + #selected_item_id_aux_int + ',')",
              // 결과가 들어갈 속성
              "target_property_name": "#selected_item_id_aux_str"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#selected_item_id_aux_int / 65536)",
              // 결과가 들어갈 속성
              "target_property_name": "#selected_item_id_int"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('id' + #selected_item_id_int + ',')",
              // 결과가 들어갈 속성
              "target_property_name": "#selected_item_id_str"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "arrow_count",
              // 계산식/참조 값
              "source_property_name": "(#inventory_target_item_total_count_int = 0)",
              // 결과가 들어갈 속성
              "target_property_name": "#is_arrow_empty"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (($rainbowpie_ui_moduleflag_hud_bow_helper_bowids - #selected_item_id_aux_str) = $rainbowpie_ui_moduleflag_hud_bow_helper_bowids))",
              // 결과가 들어갈 속성
              "target_property_name": "#is_match_aux"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (($rainbowpie_ui_moduleflag_hud_bow_helper_bowids - #selected_item_id_str) = $rainbowpie_ui_moduleflag_hud_bow_helper_bowids))",
              // 결과가 들어갈 속성
              "target_property_name": "#is_match_id"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#is_match_aux or #is_match_id)",
              // 결과가 들어갈 속성
              "target_property_name": "#is_holding_bow"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#is_holding_bow and (not #is_arrow_empty))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  }
}

hud_compass.json RainbowPie UI · module

필요한 부분만 참고해서 가져가세요.

// 예제: hud_compass.json
// 분류: RainbowPie UI / module
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_module_hud_compass",

  // 다른 템플릿을 가져와서 확장(상속)
  "hud_compass@rainbowpieui_compatibility_config.compatibility_variables": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_module_hud_compass)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hud_compass_item_total_count@rainbowpie_modulelib_hud_item.inventory_item_count": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_inventory_target_item_ids": "('id' + $rainbowpie_ui_flag_item_clock_id + ',id' + $rainbowpie_ui_flag_item_compass_id + ',id' + $rainbowpie_ui_flag_item_recovery_compass_id +',')"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "clock_total_count@rainbowpie_modulelib_hud_item.inventory_item_count": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_inventory_target_item_ids": "('id' + $rainbowpie_ui_flag_item_clock_id + ',')"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "compass_total_count@rainbowpie_modulelib_hud_item.inventory_item_count": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_inventory_target_item_ids": "('id' + $rainbowpie_ui_flag_item_compass_id + ',')"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "recovery_compass_total_count@rainbowpie_modulelib_hud_item.inventory_item_count": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_inventory_target_item_ids": "('id' + $rainbowpie_ui_flag_item_recovery_compass_id +',')"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "compass_panel@rainbowpie_ui_common.text_background": {
          // 사용할 이미지 경로
          "texture": "($rainbowpie_ui_path_home + '/r_white')",
          // 가로/세로 크기
          "size": [ "100%c + 5px", "100%c + 5px" ],
          // 기준점에서 이동하는 거리
          "offset": [ -7, 7 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "hud_compass_item_total_count",
              // 계산식/참조 값
              "source_property_name": "(not (#inventory_target_item_total_count_int = 0))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "compass_stack_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100%c", "100%cm" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "clock@crafting.item_renderer": {
                      // 가로/세로 크기
                      "size": [ 16, 16 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 10,
                      // 이 컨트롤 안에서 쓰는 임시 저장소
                      "property_bag": {
                        // ???/??? ?
                        "#item_id_aux": "($rainbowpie_ui_flag_item_clock_id * 65536)"
                      },
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "clock_total_count",
                          // 계산식/참조 값
                          "source_property_name": "(not (#inventory_target_item_total_count_int = 0))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "compass@crafting.item_renderer": {
                      // 가로/세로 크기
                      "size": [ 16, 16 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 10,
                      // 이 컨트롤 안에서 쓰는 임시 저장소
                      "property_bag": {
                        // ???/??? ?
                        "#item_id_aux": "($rainbowpie_ui_flag_item_compass_id * 65536)"
                      },
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "compass_total_count",
                          // 계산식/참조 값
                          "source_property_name": "(not (#inventory_target_item_total_count_int = 0))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "recovery_compass@crafting.item_renderer": {
                      // 가로/세로 크기
                      "size": [ 16, 16 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 10,
                      // 이 컨트롤 안에서 쓰는 임시 저장소
                      "property_bag": {
                        // ???/??? ?
                        "#item_id_aux": "($rainbowpie_ui_flag_item_recovery_compass_id * 65536)"
                      },
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "recovery_compass_total_count",
                          // 계산식/참조 값
                          "source_property_name": "(not (#inventory_target_item_total_count_int = 0))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

hud_selected_item_id.json RainbowPie UI · module

필요한 부분만 참고해서 가져가세요.

// 예제: hud_selected_item_id.json
// 분류: RainbowPie UI / module
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_module_hud_selected_item_id",

  // ???/?? ??
  "hud_selected_item_id": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_module_hud_selected_item_id)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_item_id_aux@rainbowpie_modulelib_hud_item.selected_slot_item_id_aux": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "item_id_text@rainbowpie_ui_common.text_label": {
          // 기준점에서 이동하는 거리
          "offset": [ 0, 50 ],
          // 보여줄 글자
          "text": "#selected_item_id_aux_str",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "selected_slot_item_id_aux",
              // 계산식/참조 값
              "source_property_name": "('\"' + #selected_item_id_aux_int + '\"')",
              // 결과가 들어갈 속성
              "target_property_name": "#selected_item_id_aux_str"
            }
          ]
        }
      }
    ]
  }
}

inventory_actions.json RainbowPie UI · module

필요한 부분만 참고해서 가져가세요.

// 예제: inventory_actions.json
// 분류: RainbowPie UI / module
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_module_inventory_actions",

  // 다른 템플릿을 가져와서 확장(상속)
  "action_button_toggle_base@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpie_module_inventory_actions.drop_icon",

    // 오버라이드 가능한 변수
    "$button_type_panel": "common_buttons.new_ui_binding_button_label",
    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": false,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_inventoryui_actions",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 0,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  },

  // ???/?? ??
  "delete_icon": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$chest_visible|default": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "delete_icon": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 사용할 이미지 경로
          "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/destroy_selection')",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "chest@crafting.item_renderer": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $chest_visible)",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 가로/세로 크기
          "size": [ "62.5%", "100%x" ],
          // 기준점에서 이동하는 거리
          "offset": [ "20%x", 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#item_id_aux": 3538946
          },
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#using_touch",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "craft_icon": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_table@crafting.item_renderer": {
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#item_id_aux": 3801088
          }
        }
      },
      {
        // ???/?? ??
        "down_arrow": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 가로/세로 크기
          "size": [ "62.5%", "100%x" ],
          // 기준점에서 이동하는 거리
          "offset": [ "20%x", 0 ],
          // 사용할 이미지 경로
          "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_down')",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      }
    ]
  },

  // ???/?? ??
  "drop_icon": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$count_text|default": "x1",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "chest@crafting.item_renderer": {
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#item_id_aux": 3538946
          }
        }
      },
      {
        // ???/?? ??
        "down_arrow": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 가로/세로 크기
          "size": [ "62.5%", "100%x" ],
          // 기준점에서 이동하는 거리
          "offset": [ "20%x", 0 ],
          // 사용할 이미지 경로
          "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_down')",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "count_label@rainbowpie_ui_common.text_label_notheme": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left",
          // 보여줄 글자
          "text": "$count_text",
          // ?? ?? ??
          "font_scale_factor": 0.85,
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#using_touch",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "binding_slot_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#is_selected_slot",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$item_collection_name"
      }
    ]
  },

  // ???/?? ??
  "inventory_bindings_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "inventory_items",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$item_collection_name": "inventory_items",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_26@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 26
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_25@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 25
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_24@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 24
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_23@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 23
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_22@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 22
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_21@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 21
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_20@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 20
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_19@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 19
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_18@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 18
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_17@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 17
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_16@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 16
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_15@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 15
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_14@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 14
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_13@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 13
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_12@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 12
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_11@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 11
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_10@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 10
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_9@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 9
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_8@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 8
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_7@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_6@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_5@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_4@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_3@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_2@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_1@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_slot_0@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 0
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_26",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_26"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_25",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_25"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_24",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_24"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_23",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_23"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_22",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_22"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_21",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_21"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_20",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_20"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_19",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_19"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_18",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_18"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_17",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_17"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_16",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_16"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_15",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_15"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_14",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_14"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_13",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_13"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_12",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_12"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_11",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_11"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_10",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_10"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_9",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_9"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_8",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_8"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_7",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_7"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_6",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_6"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_5",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_5"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_4",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_4"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_3",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_3"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_2",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_2"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_1",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_1"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "inventory_bindings_slot_0",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_0"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#is_selected_slot_0 or #is_selected_slot_1 or #is_selected_slot_2 or #is_selected_slot_3 or #is_selected_slot_4 or #is_selected_slot_5 or #is_selected_slot_6 or #is_selected_slot_7 or #is_selected_slot_8 or #is_selected_slot_9 or #is_selected_slot_10 or #is_selected_slot_11 or #is_selected_slot_12 or #is_selected_slot_13 or #is_selected_slot_14 or #is_selected_slot_15 or #is_selected_slot_16 or #is_selected_slot_17 or #is_selected_slot_18 or #is_selected_slot_19 or #is_selected_slot_20 or #is_selected_slot_21 or #is_selected_slot_22 or #is_selected_slot_23 or #is_selected_slot_24 or #is_selected_slot_25 or #is_selected_slot_26)",
        // 결과가 들어갈 속성
        "target_property_name": "#is_inventory_slot_selected"
      }
    ]
  },

  // ???/?? ??
  "hotbar_bindings_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "hotbar_items",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$item_collection_name": "hotbar_items",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_8@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 8
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_7@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_6@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_5@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_4@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_3@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_2@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_1@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_slot_0@rainbowpie_module_inventory_actions.binding_slot_item": {
          // ?? ??
          "collection_index": 0
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_8",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_8"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_7",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_7"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_6",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_6"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_5",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_5"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_4",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_4"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_3",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_3"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_2",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_2"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_1",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_1"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "hotbar_bindings_slot_0",
        // 계산식/참조 값
        "source_property_name": "#is_selected_slot",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_slot_0"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#is_selected_slot_0 or #is_selected_slot_1 or #is_selected_slot_2 or #is_selected_slot_3 or #is_selected_slot_4 or #is_selected_slot_5 or #is_selected_slot_6 or #is_selected_slot_7 or #is_selected_slot_8)",
        // 결과가 들어갈 속성
        "target_property_name": "#is_hotbar_slot_selected"
      }
    ]
  },

  // ???/?? ??
  "slot_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 0 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "input_panel": {
          // 마우스/커서 따라다니는 패널
          "type": "input_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%x" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // ?? ??
          "consume_hover_events": false,
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 오버라이드 가능한 변수
          "$button_take_all_place_all|default": "rainbowpie.placeholder",
          // 오버라이드 가능한 변수
          "$button_auto_place|default": "rainbowpie.placeholder",
          // 오버라이드 가능한 변수
          "$button_mapping_type|default": "pressed",
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#is_query_target": true
          },
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "$item_collection_name"
            },
            {
              // 가져올 값 이름
              "binding_name": "#item_id_aux",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$item_collection_name"
            },
            {
              // 가져올 값 이름
              "binding_name": "#hover_text",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$item_collection_name"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('\"' + #hover_text - '\n' - '§0' - '§1' - '§2' - '§3' - '§4' - '§5' - '§6' - '§7' - '§8' - '§9' - '§a' - '§b' - '§c' - '§d' - '§e' - '§f' - '§g' - '§h' - '§i' - '§j' - '§k' - '§l' - '§m' - '§n' - '§o' - '§p' - '§q' - '§r' - '§s' - '§t' - '§u' - '§v' - '§w' - '§x' - '§y' - '§z' + '\"')",
              // 결과가 들어갈 속성
              "target_property_name": "#formatted_name",
              // 완전히 제거(공간도 없음)
              "ignored": "((not $rainbowpie_ui_flag_d6bb54d8) or (not $rainbowpie_ui_flag_84df7492))"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "inventoryui_search_text_box_display_text",
              // 계산식/참조 값
              "source_property_name": "#item_name",
              // 결과가 들어갈 속성
              "target_property_name": "#query_text",
              // 완전히 제거(공간도 없음)
              "ignored": "((not $rainbowpie_ui_flag_d6bb54d8) or (not $rainbowpie_ui_flag_84df7492))"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#query_text = '') or (not ((#formatted_name - #query_text) = #formatted_name)))",
              // 결과가 들어갈 속성
              "target_property_name": "#is_query_target",
              // 완전히 제거(공간도 없음)
              "ignored": "((not $rainbowpie_ui_flag_d6bb54d8) or (not $rainbowpie_ui_flag_84df7492))"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((not (#item_id_aux = -1)) and #is_query_target)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ],
          // 입력 키/버튼과 동작 연결
          "button_mappings": [
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_select",
              // 어떤 동작을 실행할지
              "to_button_id": "$button_take_all_place_all",
              // 입력 시점(pressed 등)
              "mapping_type": "$button_mapping_type",
              // ?? ??
              "consume_event": false
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_ok",
              // 어떤 동작을 실행할지
              "to_button_id": "$button_take_all_place_all",
              // 입력 시점(pressed 등)
              "mapping_type": "$button_mapping_type",
              // ?? ??
              "consume_event": false
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_auto_place",
              // 어떤 동작을 실행할지
              "to_button_id": "$button_auto_place",
              // 입력 시점(pressed 등)
              "mapping_type": "$button_mapping_type",
              // ?? ??
              "consume_event": false
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.controller_secondary_select",
              // 어떤 동작을 실행할지
              "to_button_id": "$button_auto_place",
              // 입력 시점(pressed 등)
              "mapping_type": "$button_mapping_type",
              // ?? ??
              "consume_event": false
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "inventory_input_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 목록 이름
    "collection_name": "inventory_items",
    // 오버라이드 가능한 변수
    "$item_collection_name": "inventory_items",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_26@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 26
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_25@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 25
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_24@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 24
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_23@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 23
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_22@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 22
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_21@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 21
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_20@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 20
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_19@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 19
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_18@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 18
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_17@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 17
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_16@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 16
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_15@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 15
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_14@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 14
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_13@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 13
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_12@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 12
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_11@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 11
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_10@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 10
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_9@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 9
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_8@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 8
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_7@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_6@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_5@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_4@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_3@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_2@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_1@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_0@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 0
        }
      }
    ]
  },

  // ???/?? ??
  "hotbar_input_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 목록 이름
    "collection_name": "hotbar_items",
    // 오버라이드 가능한 변수
    "$item_collection_name": "hotbar_items",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_8@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 8
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_7@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_6@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_5@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_4@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_3@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_2@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_1@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_0@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 0
        }
      }
    ]
  },

  // ???/?? ??
  "armor_input_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 목록 이름
    "collection_name": "armor_items",
    // 오버라이드 가능한 변수
    "$item_collection_name": "armor_items",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_3@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_2@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_1@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_0@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 0
        }
      }
    ]
  },

  // ???/?? ??
  "offhand_input_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 목록 이름
    "collection_name": "offhand_items",
    // 오버라이드 가능한 변수
    "$item_collection_name": "offhand_items",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_slot_0@rainbowpie_module_inventory_actions.slot_item": {
          // ?? ??
          "collection_index": 0
        }
      }
    ]
  },

  // ???/?? ??
  "item_hover_text": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%cm", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hover_text_label@rainbowpie_ui_common.text_label_notheme": {
          // 가로/세로 크기
          "size": [ "default", "default" ],
          // ?? (R,G,B,A)
          "color": "$rainbowpie_ui_theme_hovertext_text_color",
          // 보여줄 글자
          "text": "#text",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#hover_text",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#text",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$item_collection_name"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "armor_slot": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#item_id_aux",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$item_collection_name"
      }
    ]
  },

  // ???/?? ??
  "item_id_aux_checker": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_id_list|default": "",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#item_id_aux",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$item_collection_name"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('aux' + #item_id_aux + ',')",
        // 결과가 들어갈 속성
        "target_property_name": "#item_id_aux_str"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#item_id_aux / 65536)",
        // 결과가 들어갈 속성
        "target_property_name": "#item_id_int"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('id' + #item_id_int + ',')",
        // 결과가 들어갈 속성
        "target_property_name": "#item_id_str"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not (($rainbowpie_localui_id_list - #item_id_aux_str) = $rainbowpie_localui_id_list))",
        // 결과가 들어갈 속성
        "target_property_name": "#is_match_aux"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not (($rainbowpie_localui_id_list - #item_id_str) = $rainbowpie_localui_id_list))",
        // 결과가 들어갈 속성
        "target_property_name": "#is_match_id"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#is_match_aux or #is_match_id)",
        // 결과가 들어갈 속성
        "target_property_name": "#is_match_id_and_aux"
      }
    ]
  },

  // ???/?? ??
  "inventory_actions": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_module_inventory_actions)"
  },

  // ???/?? ??
  "armor_switch_hover_text": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_home + '/r_white')",
    // 가로/세로 크기
    "size": [ "100%c + 8px", "100%c + 5px" ],
    // 기준점에서 이동하는 거리
    "offset": [ 2, 0 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 200,
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_hovertext_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_hovertext_background_alpha",
    // 오버라이드 가능한 변수
    "$armor_slot|default": -1,
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "armor_item_text": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%c" ],
          // 목록 이름
          "collection_name": "armor_items",
          // 오버라이드 가능한 변수
          "$item_collection_name": "armor_items",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "item_hover_text@rainbowpie_module_inventory_actions.item_hover_text": {
                // ?? ??
                "collection_index": "$armor_slot"
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "inventory_actions_hover_text@rainbowpie_module_inventory_actions.inventory_actions": {
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // ??? ?? ?
    "allow_clipping": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "armor_compare@rainbowpieui_compatibility_config.compatibility_variables": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_armor_switch_enabled)",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 22,
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "armor_slots",
              // ?? ??
              "resolve_sibling_scope": true,
              // 계산식/참조 값
              "source_property_name": "#armor_slots_item_id_aux",
              // 결과가 들어갈 속성
              "target_property_name": "#armor_slots_item_id_aux"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "helmet_id_checker",
              // ?? ??
              "resolve_sibling_scope": true,
              // 계산식/참조 값
              "source_property_name": "#is_match_id_and_aux",
              // 결과가 들어갈 속성
              "target_property_name": "#is_helmet"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "chestplate_id_checker",
              // ?? ??
              "resolve_sibling_scope": true,
              // 계산식/참조 값
              "source_property_name": "#is_match_id_and_aux",
              // 결과가 들어갈 속성
              "target_property_name": "#is_chestplate"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "leggings_id_checker",
              // ?? ??
              "resolve_sibling_scope": true,
              // 계산식/참조 값
              "source_property_name": "#is_match_id_and_aux",
              // 결과가 들어갈 속성
              "target_property_name": "#is_leggings"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "boots_id_checker",
              // ?? ??
              "resolve_sibling_scope": true,
              // 계산식/참조 값
              "source_property_name": "#is_match_id_and_aux",
              // 결과가 들어갈 속성
              "target_property_name": "#is_boots"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((not (#armor_slots_item_id_aux = -4)) and (#is_helmet or #is_chestplate or #is_leggings or #is_boots))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "armor_compare_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%c", "100%c" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 완전히 제거(공간도 없음)
                "ignored": "((not ($item_collection_name = 'inventory_items')) or ($item_collection_name = 'hotbar_items'))",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "armor_slots": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 가로/세로 크기
                      "size": [ 0, 0 ],
                      // 목록 이름
                      "collection_name": "armor_items",
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "armor_items",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "armor_slot_0@rainbowpie_module_inventory_actions.armor_slot": {
                            // ?? ??
                            "collection_index": 0
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "armor_slot_1@rainbowpie_module_inventory_actions.armor_slot": {
                            // ?? ??
                            "collection_index": 1
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "armor_slot_2@rainbowpie_module_inventory_actions.armor_slot": {
                            // ?? ??
                            "collection_index": 2
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "armor_slot_3@rainbowpie_module_inventory_actions.armor_slot": {
                            // ?? ??
                            "collection_index": 3
                          }
                        }
                      ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "armor_slot_0",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "#item_id_aux",
                          // 결과가 들어갈 속성
                          "target_property_name": "#slot_0_item_id_aux"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "armor_slot_1",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "#item_id_aux",
                          // 결과가 들어갈 속성
                          "target_property_name": "#slot_1_item_id_aux"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "armor_slot_2",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "#item_id_aux",
                          // 결과가 들어갈 속성
                          "target_property_name": "#slot_2_item_id_aux"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "armor_slot_3",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "#item_id_aux",
                          // 결과가 들어갈 속성
                          "target_property_name": "#slot_3_item_id_aux"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#slot_0_item_id_aux + #slot_1_item_id_aux + #slot_2_item_id_aux + #slot_3_item_id_aux)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#armor_slots_item_id_aux"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "helmet_id_checker@rainbowpie_module_inventory_actions.item_id_aux_checker": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_id_list": "$rainbowpie_ui_moduleflag_inventory_actions_armor_ids_helmet"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "chestplate_id_checker@rainbowpie_module_inventory_actions.item_id_aux_checker": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_id_list": "$rainbowpie_ui_moduleflag_inventory_actions_armor_ids_chestplate"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "leggings_id_checker@rainbowpie_module_inventory_actions.item_id_aux_checker": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_id_list": "$rainbowpie_ui_moduleflag_inventory_actions_armor_ids_leggings"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "boots_id_checker@rainbowpie_module_inventory_actions.item_id_aux_checker": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_id_list": "$rainbowpie_ui_moduleflag_inventory_actions_armor_ids_boots"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "helmet_item_text@rainbowpie_module_inventory_actions.armor_switch_hover_text": {
                      // 오버라이드 가능한 변수
                      "$armor_slot": 0,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "armor_slots",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "(not (#slot_0_item_id_aux = -1))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#slot_isnt_empty"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "helmet_id_checker",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "#is_match_id_and_aux",
                          // 결과가 들어갈 속성
                          "target_property_name": "#is_target_item"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#slot_isnt_empty and #is_target_item)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "chestplate_item_text@rainbowpie_module_inventory_actions.armor_switch_hover_text": {
                      // 오버라이드 가능한 변수
                      "$armor_slot": 1,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "armor_slots",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "(not (#slot_1_item_id_aux = -1))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#slot_isnt_empty"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "chestplate_id_checker",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "#is_match_id_and_aux",
                          // 결과가 들어갈 속성
                          "target_property_name": "#is_target_item"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#slot_isnt_empty and #is_target_item)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "leggings_item_text@rainbowpie_module_inventory_actions.armor_switch_hover_text": {
                      // 오버라이드 가능한 변수
                      "$armor_slot": 2,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "armor_slots",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "(not (#slot_2_item_id_aux = -1))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#slot_isnt_empty"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "leggings_id_checker",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "#is_match_id_and_aux",
                          // 결과가 들어갈 속성
                          "target_property_name": "#is_target_item"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#slot_isnt_empty and #is_target_item)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "boots_item_text@rainbowpie_module_inventory_actions.armor_switch_hover_text": {
                      // 오버라이드 가능한 변수
                      "$armor_slot": 3,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "armor_slots",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "(not (#slot_3_item_id_aux = -1))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#slot_isnt_empty"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "boots_id_checker",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "#is_match_id_and_aux",
                          // 결과가 들어갈 속성
                          "target_property_name": "#is_target_item"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#slot_isnt_empty and #is_target_item)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "inventory_actions_cell_panel@rainbowpie_module_inventory_actions.inventory_actions": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "armor_switch@rainbowpieui_compatibility_config.compatibility_variables": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_armor_switch_enabled)",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 22,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "armor_switch_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 완전히 제거(공간도 없음)
                "ignored": "((not (($item_collection_name = 'inventory_items') or ($top_half_variant = 'crafting.survival_panel_top_half'))) or ($item_collection_name = 'hotbar_items'))",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "helmet_switch": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#item_id_aux",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "$item_collection_name"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "('aux' + #item_id_aux + ',')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#item_id_aux_str"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#item_id_aux / 65536)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#item_id"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "('id' + #item_id + ',')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#item_id_str"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(not (($rainbowpie_ui_moduleflag_inventory_actions_armor_ids_helmet - #item_id_aux_str) = $rainbowpie_ui_moduleflag_inventory_actions_armor_ids_helmet))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#is_match_aux"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(not (($rainbowpie_ui_moduleflag_inventory_actions_armor_ids_helmet - #item_id_str) = $rainbowpie_ui_moduleflag_inventory_actions_armor_ids_helmet))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#is_match_id"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#is_match_aux or #is_match_id)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "helmet_switch_1": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // ?? ??
                            "consume_hover_events": false,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 10,
                            // 이 컨트롤 안에서 쓰는 임시 저장소
                            "property_bag": {
                              // ???/??? ?
                              "#collection_name": "armor_items",
                              // ???/??? ?
                              "#collection_index": 0
                            },
                            // 입력 키/버튼과 동작 연결
                            "button_mappings": [
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_auto_place",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.container_auto_place",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // ?? ??
                                "consume_event": false
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "helmet_switch_2": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // ?? ??
                            "consume_hover_events": false,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 8,
                            // 입력 키/버튼과 동작 연결
                            "button_mappings": [
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_auto_place",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.container_auto_place",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // ?? ??
                                "consume_event": false
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "chestplate_switch": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#item_id_aux",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "$item_collection_name"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "('aux' + #item_id_aux + ',')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#item_id_aux_str"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#item_id_aux / 65536)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#item_id"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "('id' + #item_id + ',')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#item_id_str"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(not (($rainbowpie_ui_moduleflag_inventory_actions_armor_ids_chestplate - #item_id_aux_str) = $rainbowpie_ui_moduleflag_inventory_actions_armor_ids_chestplate))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#is_match_aux"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(not (($rainbowpie_ui_moduleflag_inventory_actions_armor_ids_chestplate - #item_id_str) = $rainbowpie_ui_moduleflag_inventory_actions_armor_ids_chestplate))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#is_match_id"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#is_match_aux or #is_match_id)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "chestplate_switch_1": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // ?? ??
                            "consume_hover_events": false,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 10,
                            // 이 컨트롤 안에서 쓰는 임시 저장소
                            "property_bag": {
                              // ???/??? ?
                              "#collection_name": "armor_items",
                              // ???/??? ?
                              "#collection_index": 1
                            },
                            // 입력 키/버튼과 동작 연결
                            "button_mappings": [
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_auto_place",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.container_auto_place",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // ?? ??
                                "consume_event": false
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "chestplate_switch_2": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // ?? ??
                            "consume_hover_events": false,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 8,
                            // 입력 키/버튼과 동작 연결
                            "button_mappings": [
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_auto_place",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.container_auto_place",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // ?? ??
                                "consume_event": false
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "leggings_switch": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#item_id_aux",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "$item_collection_name"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "('aux' + #item_id_aux + ',')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#item_id_aux_str"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#item_id_aux / 65536)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#item_id"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "('id' + #item_id + ',')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#item_id_str"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(not (($rainbowpie_ui_moduleflag_inventory_actions_armor_ids_leggings - #item_id_aux_str) = $rainbowpie_ui_moduleflag_inventory_actions_armor_ids_leggings))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#is_match_aux"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(not (($rainbowpie_ui_moduleflag_inventory_actions_armor_ids_leggings - #item_id_str) = $rainbowpie_ui_moduleflag_inventory_actions_armor_ids_leggings))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#is_match_id"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#is_match_aux or #is_match_id)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "leggings_switch_1": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // ?? ??
                            "consume_hover_events": false,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 10,
                            // 이 컨트롤 안에서 쓰는 임시 저장소
                            "property_bag": {
                              // ???/??? ?
                              "#collection_name": "armor_items",
                              // ???/??? ?
                              "#collection_index": 2
                            },
                            // 입력 키/버튼과 동작 연결
                            "button_mappings": [
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_auto_place",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.container_auto_place",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // ?? ??
                                "consume_event": false
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "leggings_switch_2": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // ?? ??
                            "consume_hover_events": false,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 8,
                            // 입력 키/버튼과 동작 연결
                            "button_mappings": [
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_auto_place",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.container_auto_place",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // ?? ??
                                "consume_event": false
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "chestplate_boots": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#item_id_aux",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "$item_collection_name"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "('aux' + #item_id_aux + ',')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#item_id_aux_str"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#item_id_aux / 65536)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#item_id"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "('id' + #item_id + ',')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#item_id_str"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(not (($rainbowpie_ui_moduleflag_inventory_actions_armor_ids_boots - #item_id_aux_str) = $rainbowpie_ui_moduleflag_inventory_actions_armor_ids_boots))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#is_match_aux"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(not (($rainbowpie_ui_moduleflag_inventory_actions_armor_ids_boots - #item_id_str) = $rainbowpie_ui_moduleflag_inventory_actions_armor_ids_boots))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#is_match_id"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#is_match_aux or #is_match_id)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "boots_switch_1": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // ?? ??
                            "consume_hover_events": false,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 10,
                            // 이 컨트롤 안에서 쓰는 임시 저장소
                            "property_bag": {
                              // ???/??? ?
                              "#collection_name": "armor_items",
                              // ???/??? ?
                              "#collection_index": 3
                            },
                            // 입력 키/버튼과 동작 연결
                            "button_mappings": [
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_auto_place",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.container_auto_place",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // ?? ??
                                "consume_event": false
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "boots_switch_2": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // ?? ??
                            "consume_hover_events": false,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 8,
                            // 입력 키/버튼과 동작 연결
                            "button_mappings": [
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_auto_place",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.container_auto_place",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // ?? ??
                                "consume_event": false
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "action_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_bce3269f)",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 22,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "drop_one_input_panel": {
                // 마우스/커서 따라다니는 패널
                "type": "input_panel",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // ?? ??
                "consume_hover_events": "$touch",
                // 보이기/숨기기(공간 유지)
                "visible": false,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#using_touch"
                  },
                  {
                    // 목록 인덱스/현재 항목 정보 제공
                    "binding_type": "collection_details",
                    // 목록 이름
                    "binding_collection_name": "$item_collection_name"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#item_id_aux",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "$item_collection_name"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "inventory_action_dropone",
                    // 계산식/참조 값
                    "source_property_name": "#toggle_state",
                    // 결과가 들어갈 속성
                    "target_property_name": "#inventory_action_dropone_enabled"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "((not (#item_id_aux = -1)) and #using_touch and #inventory_action_dropone_enabled)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ],
                // 입력 키/버튼과 동작 연결
                "button_mappings": [
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_select",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.drop_one",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_ok",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.drop_one",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "drop_all_input_panel": {
                // 마우스/커서 따라다니는 패널
                "type": "input_panel",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // ?? ??
                "consume_hover_events": "$touch",
                // 보이기/숨기기(공간 유지)
                "visible": false,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#using_touch"
                  },
                  {
                    // 목록 인덱스/현재 항목 정보 제공
                    "binding_type": "collection_details",
                    // 목록 이름
                    "binding_collection_name": "$item_collection_name"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#item_id_aux",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "$item_collection_name"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "inventory_action_dropall",
                    // 계산식/참조 값
                    "source_property_name": "#toggle_state",
                    // 결과가 들어갈 속성
                    "target_property_name": "#inventory_action_dropall_enabled"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "((not (#item_id_aux = -1)) and #using_touch and #inventory_action_dropall_enabled)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ],
                // 입력 키/버튼과 동작 연결
                "button_mappings": [
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_select",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.drop_all",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_ok",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.drop_all",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "inventory_actions_inventory@rainbowpie_module_inventory_actions.inventory_actions": {
    // 오버라이드 가능한 변수
    "$action_button_stack_panel_size|default": [ 22, "100%c" ],
    // 오버라이드 가능한 변수
    "$action_button_stack_panel_max_size|default": [ 22, 156 ],
    // 오버라이드 가능한 변수
    "$padding_size|default": [ "100%", "9.090909090909091%x" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_bindings_panel@rainbowpie_module_inventory_actions.inventory_bindings_panel": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_bindings_panel@rainbowpie_module_inventory_actions.hotbar_bindings_panel": {}
      },
      {
        // ???/?? ??
        "action_button_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 가로/세로 크기
          "size": "$action_button_stack_panel_size",
          // ?? ?? ?
          "max_size": "$action_button_stack_panel_max_size",
          // 기준점에서 이동하는 거리
          "offset": [ "109.0909090909091%x", 0 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "quick_craft_button@common_buttons.light_content_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_quick_craft_enabled)",
                // 오버라이드 가능한 변수
                "$button_focus_precedence": -1,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_desc_enabled": true,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_desc_text": "rainbowpie.ui.inventory.actions.quick_craft",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_hover_border_layer": 30,
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.crafting_output_tertiary",
                // 오버라이드 가능한 변수
                "$button_content": "rainbowpie_module_inventory_actions.craft_icon",
                // ?? ??
                "consume_hover_events": false,
                // 가로/세로 크기
                "size": [ "100%", "100%x" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#collection_name": "crafting_output_items",
                  // ???/??? ?
                  "#collection_index": 0
                }
              }
            },
            {
              // ???/?? ??
              "padding_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$padding_size",
                // 완전히 제거(공간도 없음)
                "ignored": "((not ($top_half_variant = 'crafting.survival_panel_top_half')) or (not $rainbowpie_ui_moduleflag_inventory_actions_drop_item_enabled))"
              }
            },
            {
              // ???/?? ??
              "drop_all_item": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 0 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 50,
                // 완전히 제거(공간도 없음)
                "ignored": "((not ($top_half_variant = 'crafting.survival_panel_top_half')) or (not $rainbowpie_ui_moduleflag_inventory_actions_drop_item_enabled))",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "armor_input_panel@rainbowpie_module_inventory_actions.armor_input_panel": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_drop_all_item_enabled)",
                      // 오버라이드 가능한 변수
                      "$button_auto_place": "button.drop_all"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "offhand_input_panel@rainbowpie_module_inventory_actions.offhand_input_panel": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_drop_all_item_enabled)",
                      // 오버라이드 가능한 변수
                      "$button_auto_place": "button.drop_all"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "inventory_input_panel@rainbowpie_module_inventory_actions.inventory_input_panel": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_drop_all_item_enabled)",
                      // 오버라이드 가능한 변수
                      "$button_auto_place": "button.drop_all"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "hotbar_input_panel@rainbowpie_module_inventory_actions.hotbar_input_panel": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_drop_all_item_enabled)",
                      // 오버라이드 가능한 변수
                      "$button_auto_place": "button.drop_all"
                    }
                  },
                  {
                    // ???/?? ??
                    "drop_one_input_panel": {
                      // 마우스/커서 따라다니는 패널
                      "type": "input_panel",
                      // 가로/세로 크기
                      "size": [ "100%", "100%x" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // ?? ??
                      "consume_hover_events": false,
                      // 보이기/숨기기(공간 유지)
                      "visible": false,
                      // 완전히 제거(공간도 없음)
                      "ignored": "$rainbowpie_ui_flag_bce3269f",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#using_touch"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "#inventory_selected_item",
                          // ?? ???
                          "binding_condition": "always"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "inventory_bindings_panel",
                          // 계산식/참조 값
                          "source_property_name": "#is_inventory_slot_selected",
                          // 결과가 들어갈 속성
                          "target_property_name": "#is_inventory_slot_selected"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "hotbar_bindings_panel",
                          // 계산식/참조 값
                          "source_property_name": "#is_hotbar_slot_selected",
                          // 결과가 들어갈 속성
                          "target_property_name": "#is_hotbar_slot_selected"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(((not (#inventory_selected_item = -1)) or #is_inventory_slot_selected or #is_hotbar_slot_selected) and #using_touch)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ],
                      // 입력 키/버튼과 동작 연결
                      "button_mappings": [
                        {
                          // 어떤 입력을 받을지
                          "from_button_id": "button.menu_select",
                          // 어떤 동작을 실행할지
                          "to_button_id": "button.drop_one",
                          // 입력 시점(pressed 등)
                          "mapping_type": "pressed",
                          // ?? ??
                          "consume_event": false
                        },
                        {
                          // 어떤 입력을 받을지
                          "from_button_id": "button.menu_ok",
                          // 어떤 동작을 실행할지
                          "to_button_id": "button.drop_one",
                          // 입력 시점(pressed 등)
                          "mapping_type": "pressed",
                          // ?? ??
                          "consume_event": false
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "drop_item_button_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%x" ],
                // 완전히 제거(공간도 없음)
                "ignored": "(not ($top_half_variant = 'crafting.survival_panel_top_half'))",
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#rainbowpie_ui_flag_bce3269f": "$rainbowpie_ui_flag_bce3269f"
                },
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#using_touch"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#using_touch and #rainbowpie_ui_flag_bce3269f)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "drop_one@rainbowpie_module_inventory_actions.action_button_toggle_base": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_button_desc_enabled": true,
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_button_desc_text": "rainbowpie.ui.inventory.actions.drop_selection",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_button_hover_border_layer": 30,
                      // 오버라이드 가능한 변수
                      "$button_image_size": [ "100%", "100%" ],
                      // 가로/세로 크기
                      "size": [ "100%", "100%x" ],
                      // 오버라이드 가능한 변수
                      "$toggle_group_forced_index": 1000,
                      // 오버라이드 가능한 변수
                      "$toggle_view_binding_name": "inventory_action_dropone",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 10,
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_flag_bce3269f)",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "inventory_action_dropall",
                          // 계산식/참조 값
                          "source_property_name": "(not #toggle_state)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#enabled"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "drop_item_button@common_buttons.light_content_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "((not ($top_half_variant = 'crafting.survival_panel_top_half')) or (not $rainbowpie_ui_moduleflag_inventory_actions_drop_item_enabled))",
                // 오버라이드 가능한 변수
                "$button_focus_precedence": -1,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_desc_enabled": true,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_desc_text": "rainbowpie.ui.inventory.actions.drop_selection",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_hover_border_layer": 30,
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "rainbowpie.drop_one",
                // 오버라이드 가능한 변수
                "$button_content": "rainbowpie_module_inventory_actions.drop_icon",
                // ?? ??
                "consume_hover_events": false,
                // 가로/세로 크기
                "size": [ "100%", "100%x" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#rainbowpie_ui_flag_bce3269f": "$rainbowpie_ui_flag_bce3269f"
                },
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#using_touch"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#inventory_selected_item",
                    // ?? ???
                    "binding_condition": "always"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "inventory_bindings_panel",
                    // 계산식/참조 값
                    "source_property_name": "#is_inventory_slot_selected",
                    // 결과가 들어갈 속성
                    "target_property_name": "#is_inventory_slot_selected"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "hotbar_bindings_panel",
                    // 계산식/참조 값
                    "source_property_name": "#is_hotbar_slot_selected",
                    // 결과가 들어갈 속성
                    "target_property_name": "#is_hotbar_slot_selected"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "((not (#is_inventory_slot_selected or #is_hotbar_slot_selected)) and (#inventory_selected_item = -1))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#enabled"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (#using_touch and #rainbowpie_ui_flag_bce3269f))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_0": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$padding_size",
                // 완전히 제거(공간도 없음)
                "ignored": "((not ($top_half_variant = 'crafting.survival_panel_top_half')) or (not $rainbowpie_ui_moduleflag_inventory_actions_delete_item_enabled))",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global",
                    // 가져올 값 이름
                    "binding_name": "#is_creative_mode",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "delete_all_item": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 0 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 50,
                // 완전히 제거(공간도 없음)
                "ignored": "((not ($top_half_variant = 'crafting.survival_panel_top_half')) or (not $rainbowpie_ui_moduleflag_inventory_actions_delete_item_enabled))",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "armor_input_panel@rainbowpie_module_inventory_actions.armor_input_panel": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_delete_all_item_enabled)",
                      // 오버라이드 가능한 변수
                      "$button_auto_place": "button.container_auto_destroy"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "offhand_input_panel@rainbowpie_module_inventory_actions.offhand_input_panel": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_delete_all_item_enabled)",
                      // 오버라이드 가능한 변수
                      "$button_auto_place": "button.container_auto_destroy"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "inventory_input_panel@rainbowpie_module_inventory_actions.inventory_input_panel": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_delete_all_item_enabled)",
                      // 오버라이드 가능한 변수
                      "$button_auto_place": "button.container_auto_destroy"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "hotbar_input_panel@rainbowpie_module_inventory_actions.hotbar_input_panel": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_delete_all_item_enabled)",
                      // 오버라이드 가능한 변수
                      "$button_auto_place": "button.container_auto_destroy"
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global",
                    // 가져올 값 이름
                    "binding_name": "#is_creative_mode",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "delete_item_button@common_buttons.light_content_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "((not ($top_half_variant = 'crafting.survival_panel_top_half')) or (not $rainbowpie_ui_moduleflag_inventory_actions_delete_item_enabled))",
                // 오버라이드 가능한 변수
                "$button_focus_precedence": -1,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_desc_enabled": true,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_desc_text": "rainbowpie.ui.inventory.actions.destroy_selection",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_hover_border_layer": 30,
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.destroy_selection",
                // 오버라이드 가능한 변수
                "$button_content": "rainbowpie_module_inventory_actions.delete_icon",
                // ?? ??
                "consume_hover_events": false,
                // 가로/세로 크기
                "size": [ "100%", "100%x" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global",
                    // 가져올 값 이름
                    "binding_name": "#is_creative_mode",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "secondary_action_button_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 가로/세로 크기
          "size": "$action_button_stack_panel_size",
          // ?? ?? ?
          "max_size": "$action_button_stack_panel_max_size",
          // 기준점에서 이동하는 거리
          "offset": [ "218.1818181818182%x", 0 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "drop_all_item": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 0 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 50,
                // 완전히 제거(공간도 없음)
                "ignored": "((not ($top_half_variant = 'crafting.survival_panel_top_half')) or (not $rainbowpie_ui_moduleflag_inventory_actions_drop_item_enabled))",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "inventory_bindings_panel",
                    // 계산식/참조 값
                    "source_property_name": "#is_inventory_slot_selected",
                    // 결과가 들어갈 속성
                    "target_property_name": "#is_inventory_slot_selected"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "hotbar_bindings_panel",
                    // 계산식/참조 값
                    "source_property_name": "#is_hotbar_slot_selected",
                    // 결과가 들어갈 속성
                    "target_property_name": "#is_hotbar_slot_selected"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (#is_inventory_slot_selected or #is_hotbar_slot_selected))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "armor_input_panel@rainbowpie_module_inventory_actions.armor_input_panel": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_drop_all_item_enabled)",
                      // 오버라이드 가능한 변수
                      "$button_take_all_place_all": "button.drop_all",
                      // 오버라이드 가능한 변수
                      "$button_mapping_type": "double_pressed"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "offhand_input_panel@rainbowpie_module_inventory_actions.offhand_input_panel": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_drop_all_item_enabled)",
                      // 오버라이드 가능한 변수
                      "$button_take_all_place_all": "button.drop_all",
                      // 오버라이드 가능한 변수
                      "$button_mapping_type": "double_pressed"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "inventory_input_panel@rainbowpie_module_inventory_actions.inventory_input_panel": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_drop_all_item_enabled)",
                      // 오버라이드 가능한 변수
                      "$button_take_all_place_all": "button.drop_all",
                      // 오버라이드 가능한 변수
                      "$button_mapping_type": "double_pressed"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "hotbar_input_panel@rainbowpie_module_inventory_actions.hotbar_input_panel": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_drop_all_item_enabled)",
                      // 오버라이드 가능한 변수
                      "$button_take_all_place_all": "button.drop_all",
                      // 오버라이드 가능한 변수
                      "$button_mapping_type": "double_pressed"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "drop_item_button_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%x" ],
                // 완전히 제거(공간도 없음)
                "ignored": "(not ($top_half_variant = 'crafting.survival_panel_top_half'))",
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#rainbowpie_ui_flag_bce3269f": "$rainbowpie_ui_flag_bce3269f"
                },
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#using_touch"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#using_touch and #rainbowpie_ui_flag_bce3269f)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "drop_all@rainbowpie_module_inventory_actions.action_button_toggle_base": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_button_desc_enabled": true,
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_button_desc_text": "rainbowpie.ui.inventory.actions.drop_selection",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_button_hover_border_layer": 30,
                      // 오버라이드 가능한 변수
                      "$button_image_size": [ "100%", "100%" ],
                      // 가로/세로 크기
                      "size": [ "100%", "100%x" ],
                      // 오버라이드 가능한 변수
                      "$count_text": "All",
                      // 오버라이드 가능한 변수
                      "$toggle_group_forced_index": 1001,
                      // 오버라이드 가능한 변수
                      "$toggle_view_binding_name": "inventory_action_dropall",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 10,
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_flag_bce3269f)",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "inventory_action_dropone",
                          // 계산식/참조 값
                          "source_property_name": "(not #toggle_state)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#enabled"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "drop_item_button@common_buttons.light_content_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "((not ($top_half_variant = 'crafting.survival_panel_top_half')) or (not $rainbowpie_ui_moduleflag_inventory_actions_drop_item_enabled))",
                // 오버라이드 가능한 변수
                "$button_focus_precedence": -1,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_desc_enabled": true,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_desc_text": "rainbowpie.ui.inventory.actions.drop_inventory",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_hover_border_layer": 30,
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "rainbowpie.drop_one",
                // 오버라이드 가능한 변수
                "$button_content": "rainbowpie_module_inventory_actions.drop_icon",
                // 오버라이드 가능한 변수
                "$count_text": "All",
                // ?? ??
                "consume_hover_events": false,
                // 가로/세로 크기
                "size": [ "100%", "100%x" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#rainbowpie_ui_flag_bce3269f": "$rainbowpie_ui_flag_bce3269f"
                },
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#using_touch"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "inventory_bindings_panel",
                    // 계산식/참조 값
                    "source_property_name": "#is_inventory_slot_selected",
                    // 결과가 들어갈 속성
                    "target_property_name": "#is_inventory_slot_selected"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "hotbar_bindings_panel",
                    // 계산식/참조 값
                    "source_property_name": "#is_hotbar_slot_selected",
                    // 결과가 들어갈 속성
                    "target_property_name": "#is_hotbar_slot_selected"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (#is_inventory_slot_selected or #is_hotbar_slot_selected))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#enabled"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (#using_touch and #rainbowpie_ui_flag_bce3269f))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_0": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$padding_size",
                // 완전히 제거(공간도 없음)
                "ignored": "((not ($top_half_variant = 'crafting.survival_panel_top_half')) or (not $rainbowpie_ui_moduleflag_inventory_actions_delete_item_enabled))",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global",
                    // 가져올 값 이름
                    "binding_name": "#is_creative_mode",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "delete_all_item": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 0 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 50,
                // 완전히 제거(공간도 없음)
                "ignored": "((not ($top_half_variant = 'crafting.survival_panel_top_half')) or (not $rainbowpie_ui_moduleflag_inventory_actions_delete_item_enabled))",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "armor_input_panel@rainbowpie_module_inventory_actions.armor_input_panel": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_delete_all_item_enabled)",
                      // 오버라이드 가능한 변수
                      "$button_take_all_place_all": "button.container_auto_destroy",
                      // 오버라이드 가능한 변수
                      "$button_mapping_type": "double_pressed"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "offhand_input_panel@rainbowpie_module_inventory_actions.offhand_input_panel": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_delete_all_item_enabled)",
                      // 오버라이드 가능한 변수
                      "$button_take_all_place_all": "button.container_auto_destroy",
                      // 오버라이드 가능한 변수
                      "$button_mapping_type": "double_pressed"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "inventory_input_panel@rainbowpie_module_inventory_actions.inventory_input_panel": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_delete_all_item_enabled)",
                      // 오버라이드 가능한 변수
                      "$button_take_all_place_all": "button.container_auto_destroy",
                      // 오버라이드 가능한 변수
                      "$button_mapping_type": "double_pressed"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "hotbar_input_panel@rainbowpie_module_inventory_actions.hotbar_input_panel": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_moduleflag_inventory_actions_delete_all_item_enabled)",
                      // 오버라이드 가능한 변수
                      "$button_take_all_place_all": "button.container_auto_destroy",
                      // 오버라이드 가능한 변수
                      "$button_mapping_type": "double_pressed"
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global",
                    // 가져올 값 이름
                    "binding_name": "#is_creative_mode",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "delete_item_button@common_buttons.light_content_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "((not ($top_half_variant = 'crafting.survival_panel_top_half')) or (not $rainbowpie_ui_moduleflag_inventory_actions_delete_item_enabled))",
                // 오버라이드 가능한 변수
                "$button_focus_precedence": -1,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_desc_enabled": true,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_desc_text": "rainbowpie.ui.inventory.actions.destroy_inventory",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_hover_border_layer": 30,
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.destroy_selection",
                // 오버라이드 가능한 변수
                "$button_content": "rainbowpie_module_inventory_actions.delete_icon",
                // 오버라이드 가능한 변수
                "$chest_visible": true,
                // ?? ??
                "consume_hover_events": false,
                // 가로/세로 크기
                "size": [ "100%", "100%x" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global",
                    // 가져올 값 이름
                    "binding_name": "#is_creative_mode",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#using_touch",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  }
}

module lib

hud_item.json RainbowPie UI · module lib

필요한 부분만 참고해서 가져가세요.

// 예제: hud_item.json
// 분류: RainbowPie UI / module lib
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_modulelib_hud_item",

  // ???/?? ??
  "selected_slot_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#inventory_stack_count",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "hotbar_items"
      },
      {
        // 가져올 값 이름
        "binding_name": "#slot_selected",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "hotbar_items"
      },
      {
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 가져올 값 이름
        "binding_name": "#item_id_aux",
        // 목록 이름
        "binding_collection_name": "hotbar_items"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#item_id_aux * #slot_selected)",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#inventory_stack_count * 1)",
        // 결과가 들어갈 속성
        "target_property_name": "#item_stack_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#inventory_stack_count = 0)",
        // 결과가 들어갈 속성
        "target_property_name": "#is_single_item"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#is_single_item + #item_stack_count) * #slot_selected)",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_stack_count"
      }
    ]
  },

  // ???/?? ??
  "selected_slot_item_id_aux": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "hotbar_items",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_0@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 0
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_1@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_2@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_3@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_4@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_5@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_6@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_7@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_8@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 8
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_0",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_0_item_id_aux"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_1",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_1_item_id_aux"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_2",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_2_item_id_aux"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_3",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_3_item_id_aux"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_4",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_4_item_id_aux"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_5",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_5_item_id_aux"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_6",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_6_item_id_aux"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_7",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_7_item_id_aux"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_8",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_8_item_id_aux"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#slot_0_item_id_aux + #slot_1_item_id_aux + #slot_2_item_id_aux + #slot_3_item_id_aux + #slot_4_item_id_aux + #slot_5_item_id_aux + #slot_6_item_id_aux + #slot_7_item_id_aux + #slot_8_item_id_aux)",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_id_aux_int"
      }
    ]
  },

  // ???/?? ??
  "selected_slot_item_count": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "hotbar_items",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_0_count@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 0
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_1_count@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_2_count@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_3_count@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_4_count@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_5_count@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_6_count@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_7_count@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_8_count@rainbowpie_modulelib_hud_item.selected_slot_item": {
          // ?? ??
          "collection_index": 8
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_0_count",
        // 계산식/참조 값
        "source_property_name": "#selected_item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_0_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_1_count",
        // 계산식/참조 값
        "source_property_name": "#selected_item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_1_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_2_count",
        // 계산식/참조 값
        "source_property_name": "#selected_item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_2_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_3_count",
        // 계산식/참조 값
        "source_property_name": "#selected_item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_3_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_4_count",
        // 계산식/참조 값
        "source_property_name": "#selected_item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_4_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_5_count",
        // 계산식/참조 값
        "source_property_name": "#selected_item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_5_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_6_count",
        // 계산식/참조 값
        "source_property_name": "#selected_item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_6_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_7_count",
        // 계산식/참조 값
        "source_property_name": "#selected_item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_7_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "selected_slot_8_count",
        // 계산식/참조 값
        "source_property_name": "#selected_item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_8_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#slot_0_item_count + #slot_1_item_count + #slot_2_item_count + #slot_3_item_count + #slot_4_item_count + #slot_5_item_count + #slot_6_item_count + #slot_7_item_count + #slot_8_item_count)",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_stack_count_int"
      }
    ]
  },

  // ???/?? ??
  "selected_slot_item_counter": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#inventory_stack_count",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "hotbar_items"
      },
      {
        // 가져올 값 이름
        "binding_name": "#item_id_aux",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "hotbar_items"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "resolve_sibling_scope": true,
        // ?? ??
        "source_control_name": "selected_slot_item_id_aux",
        // 계산식/참조 값
        "source_property_name": "#selected_item_id_aux_int",
        // 결과가 들어갈 속성
        "target_property_name": "#items_id_aux"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#item_id_aux = #items_id_aux)",
        // 결과가 들어갈 속성
        "target_property_name": "#is_selected_item"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#inventory_stack_count * 1)",
        // 결과가 들어갈 속성
        "target_property_name": "#item_stack_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#inventory_stack_count = 0)",
        // 결과가 들어갈 속성
        "target_property_name": "#is_single_item"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#is_single_item + #item_stack_count) * #is_selected_item)",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_count"
      }
    ]
  },

  // ???/?? ??
  "selected_item_count": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "hotbar_items",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_slot_item_id_aux@rainbowpie_modulelib_hud_item.selected_slot_item_id_aux": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "count_slot_0@rainbowpie_modulelib_hud_item.selected_slot_item_counter": {
          // ?? ??
          "collection_index": 0
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "count_slot_1@rainbowpie_modulelib_hud_item.selected_slot_item_counter": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "count_slot_2@rainbowpie_modulelib_hud_item.selected_slot_item_counter": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "count_slot_3@rainbowpie_modulelib_hud_item.selected_slot_item_counter": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "count_slot_4@rainbowpie_modulelib_hud_item.selected_slot_item_counter": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "count_slot_5@rainbowpie_modulelib_hud_item.selected_slot_item_counter": {
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "count_slot_6@rainbowpie_modulelib_hud_item.selected_slot_item_counter": {
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "count_slot_7@rainbowpie_modulelib_hud_item.selected_slot_item_counter": {
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "count_slot_8@rainbowpie_modulelib_hud_item.selected_slot_item_counter": {
          // ?? ??
          "collection_index": 8
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "count_slot_0",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_0_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "count_slot_1",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_1_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "count_slot_2",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_2_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "count_slot_3",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_3_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "count_slot_4",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_4_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "count_slot_5",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_5_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "count_slot_6",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_6_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "count_slot_7",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_7_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "count_slot_8",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_8_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#slot_0_item_count + #slot_1_item_count + #slot_2_item_count + #slot_3_item_count + #slot_4_item_count + #slot_5_item_count + #slot_6_item_count + #slot_7_item_count + #slot_8_item_count)",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_total_count_int"
      }
    ]
  },

  // ???/?? ??
  "inventory_item_counter_child": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#inventory_stack_count",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "hotbar_items"
      },
      {
        // 가져올 값 이름
        "binding_name": "#item_id_aux",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "hotbar_items"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#item_id_aux / 65536)",
        // 결과가 들어갈 속성
        "target_property_name": "#item_id"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('aux' + #item_id_aux + ',')",
        // 결과가 들어갈 속성
        "target_property_name": "#item_id_aux_str"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('id' + #item_id + ',')",
        // 결과가 들어갈 속성
        "target_property_name": "#item_id_str"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not (($rainbowpie_localui_inventory_target_item_ids - #item_id_aux_str) = $rainbowpie_localui_inventory_target_item_ids))",
        // 결과가 들어갈 속성
        "target_property_name": "#is_match_aux"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not (($rainbowpie_localui_inventory_target_item_ids - #item_id_str) = $rainbowpie_localui_inventory_target_item_ids))",
        // 결과가 들어갈 속성
        "target_property_name": "#is_match_id"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#is_match_aux or #is_match_id)",
        // 결과가 들어갈 속성
        "target_property_name": "#is_target_item"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#inventory_stack_count * 1)",
        // 결과가 들어갈 속성
        "target_property_name": "#item_stack_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#inventory_stack_count = 0)",
        // 결과가 들어갈 속성
        "target_property_name": "#is_single_item"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#is_single_item + #item_stack_count) * #is_target_item)",
        // 결과가 들어갈 속성
        "target_property_name": "#selected_item_count"
      }
    ]
  },

  // ???/?? ??
  "inventory_item_counter": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // ?? ??
    "collection_index": "$collection_index",
    // 오버라이드 가능한 변수
    "$counter_control_name": "('inventory_count_slot_' + $collection_index + '_' + $rainbowpie_localui_inventory_target_item_ids)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "$counter_control_name@rainbowpie_modulelib_hud_item.inventory_item_counter_child": {}
      }
    ]
  },

  // ???/?? ??
  "hotbar_item_count": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "hotbar_items",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventory_target_item_ids|default": "",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_0@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 0
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_1@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_2@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_3@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_4@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_5@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_6@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_7@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_8@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 8
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_0_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_0_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_1_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_1_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_2_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_2_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_3_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_3_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_4_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_4_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_5_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_5_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_6_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_6_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_7_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_7_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_8_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_8_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#slot_0_item_count + #slot_1_item_count + #slot_2_item_count + #slot_3_item_count + #slot_4_item_count + #slot_5_item_count + #slot_6_item_count + #slot_7_item_count + #slot_8_item_count)",
        // 결과가 들어갈 속성
        "target_property_name": "#hotbar_target_item_total_count_int"
      }
    ]
  },

  // ???/?? ??
  "inventory_item_count": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "hotbar_items",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventory_target_item_ids|default": "",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_0@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 0
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_1@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_2@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_3@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_4@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_5@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_6@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_7@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_8@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 8
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_9@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 9
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_10@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 10
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_11@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 11
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_12@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 12
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_13@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 13
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_14@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 14
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_15@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 15
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_16@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 16
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_17@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 17
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_18@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 18
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_19@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 19
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_20@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 20
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_21@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 21
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_22@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 22
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_23@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 23
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_24@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 24
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_25@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 25
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_26@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 26
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_27@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 27
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_28@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 28
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_29@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 29
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_30@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 30
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_31@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 31
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_32@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 32
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_33@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 33
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_34@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 34
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_count_slot_35@rainbowpie_modulelib_hud_item.inventory_item_counter": {
          // 오버라이드 가능한 변수
          "$collection_index": 35
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_0_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_0_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_1_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_1_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_2_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_2_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_3_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_3_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_4_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_4_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_5_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_5_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_6_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_6_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_7_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_7_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_8_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_8_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_9_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_9_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_10_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_10_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_11_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_11_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_12_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_12_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_13_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_13_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_14_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_14_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_15_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_15_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_16_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_16_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_17_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_17_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_18_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_18_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_19_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_19_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_20_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_20_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_21_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_21_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_22_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_22_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_23_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_23_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_24_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_24_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_25_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_25_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_26_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_26_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_27_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_27_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_28_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_28_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_29_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_29_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_30_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_30_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_31_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_31_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_32_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_32_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_33_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_33_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_34_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_34_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "('inventory_count_slot_35_' + $rainbowpie_localui_inventory_target_item_ids)",
        // 계산식/참조 값
        "source_property_name": "#selected_item_count",
        // 결과가 들어갈 속성
        "target_property_name": "#slot_35_item_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#slot_0_item_count + #slot_1_item_count + #slot_2_item_count + #slot_3_item_count + #slot_4_item_count + #slot_5_item_count + #slot_6_item_count + #slot_7_item_count + #slot_8_item_count + #slot_9_item_count + #slot_10_item_count + #slot_11_item_count + #slot_12_item_count + #slot_13_item_count + #slot_14_item_count + #slot_15_item_count + #slot_16_item_count + #slot_17_item_count + #slot_18_item_count + #slot_19_item_count + #slot_20_item_count + #slot_21_item_count + #slot_22_item_count + #slot_23_item_count + #slot_24_item_count + #slot_25_item_count + #slot_26_item_count + #slot_27_item_count + #slot_28_item_count + #slot_29_item_count + #slot_30_item_count + #slot_31_item_count + #slot_32_item_count + #slot_33_item_count + #slot_34_item_count + #slot_35_item_count)",
        // 결과가 들어갈 속성
        "target_property_name": "#inventory_target_item_total_count_int"
      }
    ]
  }
}

screen

music_player_screen.json RainbowPie UI · screen

필요한 부분만 참고해서 가져가세요.

// 예제: music_player_screen.json
// 분류: RainbowPie UI / screen
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_ui_music_player",

  // 다른 템플릿을 가져와서 확장(상속)
  "music_player_button_toggle_base@common_toggles.light_ui_toggle": {
    // ??/???
    "enabled": "$rainbowpie_ui_feature_musicplayer",
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_button_checked_locked_hover",

    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "rainbowpie.ui.music.button",

    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_music_player",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 1003,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "exit_music_button@rainbowpie_ui_music_player.music_player_button_toggle_base": {
    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 1001,
    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "close_music_player",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "close_music_player",
        // 계산식/참조 값
        "source_property_name": "(not #toggle_state)",
        // 결과가 들어갈 속성
        "target_property_name": "#enabled"
      }
    ]
  },

  // ???/?? ??
  "exit_button_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "left_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "left_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background_button_image@rainbowpie_ui_controls.background_button_image": {
          // 가로/세로 크기
          "size": [ "100%c", "100%c" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 오버라이드 가능한 변수
          "$alpha": 0.0,
          // ???
          "alpha": "$alpha",
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$hover_state",
              // 오버라이드 가능한 변수
              "$alpha": 0.3
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "stack_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100%c", 16 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "padding1": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 2, "100%" ]
                    }
                  },
                  {
                    // ???/?? ??
                    "chevron_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%c", "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "left_chevron@common.chevron_image": {
                            // 사용할 이미지 경로
                            "texture": "textures/ui/chevron_left",
                            // 기준점에서 이동하는 거리
                            "offset": [ 0, -0.5 ],
                            // ?? (R,G,B,A)
                            "color": "$rainbowpie_ui_theme_topbar_text_color"
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "padding2": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 4, "100%" ]
                    }
                  },
                  {
                    // ???/?? ??
                    "button_text_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%c", "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "button_text@rainbowpie_ui_common.text_label_notheme": {
                            // ?? (R,G,B,A)
                            "color": "$rainbowpie_ui_theme_topbar_text_color",
                            // 보여줄 글자
                            "text": "$button_text"
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "padding3": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 2, "100%" ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "header_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "exit_music_button@rainbowpie_ui_music_player.exit_music_button": {
          // 오버라이드 가능한 변수
          "$toggle_focus_enabled": false,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_button_border_enabled": false,
          // 오버라이드 가능한 변수
          "$button_content_size": [ "100% - 4px", "100%" ],
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_button_default_alpha": 0.0,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_button_hover_alpha": 0.0,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_button_pressed_alpha": 0.0,
          // 오버라이드 가능한 변수
          "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
          // 오버라이드 가능한 변수
          "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
          // 오버라이드 가능한 변수
          "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
          // 오버라이드 가능한 변수
          "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
          // 오버라이드 가능한 변수
          "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
          // 오버라이드 가능한 변수
          "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
          // 오버라이드 가능한 변수
          "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
          // 오버라이드 가능한 변수
          "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
          // 오버라이드 가능한 변수
          "$button_content": "rainbowpie_ui_music_player.exit_button_content",
          // 오버라이드 가능한 변수
          "$button_text": "rainbowpie.ui.music.title",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 가로/세로 크기
          "size": [ 150, 20 ],
          // 오버라이드 가능한 변수
          "$button_mappings": [
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_select",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_select",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_ok",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_select",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_cancel",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_select",
              // 입력 시점(pressed 등)
              "mapping_type": "global"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "music_player_screen": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "header@rainbowpie_ui_common.screen_header": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_title": "Music Player Title",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_content_panel": "rainbowpie_ui_music_player.header_content",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_show_close": false
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "blur_layer@mintui_background.background_blur": {
          // 완전히 제거(공간도 없음)
          "ignored": "$rainbowpie_ui_flag_3e35fb2e",
          // 오버라이드 가능한 변수
          "$background_offset": [ "-68%", 20 ],
          // 오버라이드 가능한 변수
          "$background_children_offset": [ "68%", -20 ],
          // 오버라이드 가능한 변수
          "$background_layer": -3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "mask_layer@mintui_background.background_mask": {
          // 완전히 제거(공간도 없음)
          "ignored": "$rainbowpie_ui_flag_3e35fb2e",
          // 오버라이드 가능한 변수
          "$background_offset": [ "-68%", 20 ],
          // 오버라이드 가능한 변수
          "$background_children_offset": [ "68%", -20 ],
          // 오버라이드 가능한 변수
          "$background_layer": -3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background_blur@mintui_background.background_blur_fullscreen": {
          // 완전히 제거(공간도 없음)
          "ignored": "((not $is_pregame) or (not $rainbowpie_ui_flag_3e35fb2e))",
          // 오버라이드 가능한 변수
          "$background_mask": false,
          // 겹치는 순서(숫자 클수록 위)
          "layer": -3
        }
      },
      {
        // ???/?? ??
        "container": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100% - 20px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 20 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "selector_background@rainbowpie_ui_common.text_background": {
                // 완전히 제거(공간도 없음)
                "ignored": "$rainbowpie_ui_flag_71042f58",
                // 보이기/숨기기(공간 유지)
                "visible": "((not $is_pregame) or (not $rainbowpie_ui_feature_background_blur))",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_left",
                // 가로/세로 크기
                "size": [ "32%", "100%" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_background@rainbowpie_ui_common.global_background": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_right",
                // 가로/세로 크기
                "size": [ "68%", "100%" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // ???
                "alpha": "$rainbowpie_localui_this_alpha",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_this_alpha": "$rainbowpie_ui_theme_global_background_alpha",
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$is_pregame",
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_this_alpha": 0.5
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "dialog_content": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "selector_area@rainbowpie_ui_music_player.selector_area": {} },
                  { "content_area@rainbowpie_ui_music_player.content_area": {} }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "selector_area": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "32%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3,
    // ??? ?? ?
    "focus_container": true,
    // ??? ?? ?
    "use_last_focus": true,
    // 오버라이드 가능한 변수
    "$focus_navigation_mode_override_down|default": "contained",
    // 오버라이드 가능한 변수
    "$focus_navigation_mode_override_up|default": "contained",
    // 오버라이드 가능한 변수
    "$focus_navigation_mode_override_left|default": "",
    // 오버라이드 가능한 변수
    "$focus_navigation_mode_override_right|default": "",
    // ??? ?? ?
    "focus_navigation_mode_down": "$focus_navigation_mode_override_down",
    // ??? ?? ?
    "focus_navigation_mode_up": "$focus_navigation_mode_override_up",
    // ??? ?? ?
    "focus_navigation_mode_left": "$focus_navigation_mode_override_left",
    // ??? ?? ?
    "focus_navigation_mode_right": "$focus_navigation_mode_override_right",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "scrolling_panel@common.scrolling_panel": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_scrollbar_enabled": true,
          // 오버라이드 가능한 변수
          "$scrolling_content": "rainbowpie_ui_music_player.scrollable_selector_area_content",
          // 오버라이드 가능한 변수
          "$show_background": false,
          // 오버라이드 가능한 변수
          "$scroll_size": [ "5px", "100% - 4px" ],
          // 오버라이드 가능한 변수
          "$scroll_bar_left_padding_size": [ 0, 0 ],
          // 오버라이드 가능한 변수
          "$scroll_bar_right_padding_size": [ 1, 0 ]
        }
      }
    ]
  },

  // ???/?? ??
  "scrollable_selector_area_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 기준점에서 이동하는 거리
    "offset": [ 1, 1 ],
    // 가로/세로 크기
    "size": [ "100% - 2px", "100%c + 2px" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "selector_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 오버라이드 가능한 변수
          "$default_selector_toggle_index": 1,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "home_button@rainbowpie_ui_music_player.section_toggle_button": {
                // 오버라이드 가능한 변수
                "$section_topic": "home",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": 1
              }
            },
            { "single_category@rainbowpie_ui_music_player.topic_category": { "$category": "single" } },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "record_music_button@rainbowpie_ui_music_player.section_toggle_button": {
                // 오버라이드 가능한 변수
                "$section_topic": "record",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": 2
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "content_area": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "68%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "control": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100% - 2px", "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "scrolling_panel@common.scrolling_panel": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_scrollbar_enabled": true,
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 오버라이드 가능한 변수
                "$scrolling_content": "rainbowpie_ui_music_player.scrollable_content_area_content",
                // 오버라이드 가능한 변수
                "$show_background": false,
                // 오버라이드 가능한 변수
                "$scroll_size": [ "5px", "100% - 4px" ],
                // 오버라이드 가능한 변수
                "$scroll_bar_left_padding_size": [ 0, 0 ],
                // 오버라이드 가능한 변수
                "$scroll_bar_right_padding_size": [ 1, 0 ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "scrollable_content_area_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 기준점에서 이동하는 거리
    "offset": [ 1, 1 ],
    // 가로/세로 크기
    "size": [ "100% - 2px", "100%c + 2px" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "content_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 오버라이드 가능한 변수
          "$default_selector_toggle_index": 1,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "home_section@rainbowpie_ui_music_player.home_section": {
                // 오버라이드 가능한 변수
                "$section_topic": "home"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "record_section@rainbowpie_ui_music_player.record_section": {
                // 오버라이드 가능한 변수
                "$section_topic": "record"
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "home_section@rainbowpie_ui_music_player.main_sections": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "tip_background@rainbowpie_ui_common.text_background": {
          // 완전히 제거(공간도 없음)
          "ignored": true,
          // 가로/세로 크기
          "size": [ "100%", "100%c + 4px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "tip_text@rainbowpie_ui_common.text_label": {
                // 가로/세로 크기
                "size": [ "100% - 4px", "default" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 보여줄 글자
                "text": "tip text"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding_0": {
          // 완전히 제거(공간도 없음)
          "ignored": true,
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // ???/?? ??
        "album_1": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%", 100 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "record@rainbowpie_ui_music_player.album_template": {
                // 가로/세로 크기
                "size": [ "fill", "100%" ],
                // 오버라이드 가능한 변수
                "$album_cover_texture": "($rainbowpie_ui_path_home + '/music_player/record')",
                // 오버라이드 가능한 변수
                "$album_title": "rainbowpie.ui.music.section.record",
                // 오버라이드 가능한 변수
                "$album_sound_name": "minecraft.music.record",
                // 오버라이드 가능한 변수
                "$album_section_topic": "record",
                // 오버라이드 가능한 변수
                "$album_forced_index": 1001
              }
            },
            {
              // ???/?? ??
              "padding_0": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "fill", "100%" ]
              }
            },
            {
              // ???/?? ??
              "padding_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "fill", "100%" ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "record_section@rainbowpie_ui_music_player.main_sections": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "record_13@rainbowpie_ui_music_player.music_template_button": {
          // 오버라이드 가능한 변수
          "$music_button_texture": "textures/items/record_13",
          // 오버라이드 가능한 변수
          "$music_button_text": "item.record_13.desc",
          // 오버라이드 가능한 변수
          "$music_button_sound": "record.play.13",
          // 오버라이드 가능한 변수
          "$music_button_duration": 178
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "record_cat@rainbowpie_ui_music_player.music_template_button": {
          // 오버라이드 가능한 변수
          "$music_button_texture": "textures/items/record_cat",
          // 오버라이드 가능한 변수
          "$music_button_text": "item.record_cat.desc",
          // 오버라이드 가능한 변수
          "$music_button_sound": "record.play.cat",
          // 오버라이드 가능한 변수
          "$music_button_duration": 185
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "record_blocks@rainbowpie_ui_music_player.music_template_button": {
          // 오버라이드 가능한 변수
          "$music_button_texture": "textures/items/record_blocks",
          // 오버라이드 가능한 변수
          "$music_button_text": "item.record_blocks.desc",
          // 오버라이드 가능한 변수
          "$music_button_sound": "record.play.blocks",
          // 오버라이드 가능한 변수
          "$music_button_duration": 345
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "record_chirp@rainbowpie_ui_music_player.music_template_button": {
          // 오버라이드 가능한 변수
          "$music_button_texture": "textures/items/record_chirp",
          // 오버라이드 가능한 변수
          "$music_button_text": "item.record_chirp.desc",
          // 오버라이드 가능한 변수
          "$music_button_sound": "record.play.chirp",
          // 오버라이드 가능한 변수
          "$music_button_duration": 185
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "record_far@rainbowpie_ui_music_player.music_template_button": {
          // 오버라이드 가능한 변수
          "$music_button_texture": "textures/items/record_far",
          // 오버라이드 가능한 변수
          "$music_button_text": "item.record_far.desc",
          // 오버라이드 가능한 변수
          "$music_button_sound": "record.play.far",
          // 오버라이드 가능한 변수
          "$music_button_duration": 174
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "record_mall@rainbowpie_ui_music_player.music_template_button": {
          // 오버라이드 가능한 변수
          "$music_button_texture": "textures/items/record_mall",
          // 오버라이드 가능한 변수
          "$music_button_text": "item.record_mall.desc",
          // 오버라이드 가능한 변수
          "$music_button_sound": "record.play.mall",
          // 오버라이드 가능한 변수
          "$music_button_duration": 197
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "record_mellohi@rainbowpie_ui_music_player.music_template_button": {
          // 오버라이드 가능한 변수
          "$music_button_texture": "textures/items/record_mellohi",
          // 오버라이드 가능한 변수
          "$music_button_text": "item.record_mellohi.desc",
          // 오버라이드 가능한 변수
          "$music_button_sound": "record.play.mellohi",
          // 오버라이드 가능한 변수
          "$music_button_duration": 96
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "record_stal@rainbowpie_ui_music_player.music_template_button": {
          // 오버라이드 가능한 변수
          "$music_button_texture": "textures/items/record_stal",
          // 오버라이드 가능한 변수
          "$music_button_text": "item.record_stal.desc",
          // 오버라이드 가능한 변수
          "$music_button_sound": "record.play.stal",
          // 오버라이드 가능한 변수
          "$music_button_duration": 150
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "record_strad@rainbowpie_ui_music_player.music_template_button": {
          // 오버라이드 가능한 변수
          "$music_button_texture": "textures/items/record_strad",
          // 오버라이드 가능한 변수
          "$music_button_text": "item.record_strad.desc",
          // 오버라이드 가능한 변수
          "$music_button_sound": "record.play.strad",
          // 오버라이드 가능한 변수
          "$music_button_duration": 188
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "record_ward@rainbowpie_ui_music_player.music_template_button": {
          // 오버라이드 가능한 변수
          "$music_button_texture": "textures/items/record_ward",
          // 오버라이드 가능한 변수
          "$music_button_text": "item.record_ward.desc",
          // 오버라이드 가능한 변수
          "$music_button_sound": "record.play.ward",
          // 오버라이드 가능한 변수
          "$music_button_duration": 251
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "record_11@rainbowpie_ui_music_player.music_template_button": {
          // 오버라이드 가능한 변수
          "$music_button_texture": "textures/items/record_11",
          // 오버라이드 가능한 변수
          "$music_button_text": "item.record_11.desc",
          // 오버라이드 가능한 변수
          "$music_button_sound": "record.play.11",
          // 오버라이드 가능한 변수
          "$music_button_duration": 71
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "record_wait@rainbowpie_ui_music_player.music_template_button": {
          // 오버라이드 가능한 변수
          "$music_button_texture": "textures/items/record_wait",
          // 오버라이드 가능한 변수
          "$music_button_text": "item.record_wait.desc",
          // 오버라이드 가능한 변수
          "$music_button_sound": "record.play.wait",
          // 오버라이드 가능한 변수
          "$music_button_duration": 237
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "record_otherside@rainbowpie_ui_music_player.music_template_button": {
          // 오버라이드 가능한 변수
          "$music_button_texture": "textures/items/record_otherside",
          // 오버라이드 가능한 변수
          "$music_button_text": "item.record_otherside.desc",
          // 오버라이드 가능한 변수
          "$music_button_sound": "record.play.otherside",
          // 오버라이드 가능한 변수
          "$music_button_duration": 195
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "record_5@rainbowpie_ui_music_player.music_template_button": {
          // 오버라이드 가능한 변수
          "$music_button_texture": "textures/items/record_5",
          // 오버라이드 가능한 변수
          "$music_button_text": "item.record_5.desc",
          // 오버라이드 가능한 변수
          "$music_button_sound": "minecraft.music.the_wild_update.five",
          // 오버라이드 가능한 변수
          "$music_button_duration": 178
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "record_pigstep@rainbowpie_ui_music_player.music_template_button": {
          // 오버라이드 가능한 변수
          "$music_button_texture": "textures/items/record_pigstep",
          // 오버라이드 가능한 변수
          "$music_button_text": "item.record_pigstep.desc",
          // 오버라이드 가능한 변수
          "$music_button_sound": "record.play.pigstep_master",
          // 오버라이드 가능한 변수
          "$music_button_duration": 178
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "record_relic@rainbowpie_ui_music_player.music_template_button": {
          // 오버라이드 가능한 변수
          "$music_button_texture": "textures/items/music_disc_relic",
          // 오버라이드 가능한 변수
          "$music_button_text": "item.record_relic.desc",
          // 오버라이드 가능한 변수
          "$music_button_sound": "record.play.relic",
          // 오버라이드 가능한 변수
          "$music_button_duration": 178
        }
      }
    ]
  },

  // ???/?? ??
  "topic_category": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 16 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "list_title@rainbowpie_ui_common.title_background": {
          // 오버라이드 가능한 변수
          "$category|default": "none",
          // 가로/세로 크기
          "size": [ "100%", 14 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "text_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100% - 4px", 10 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title@rainbowpie_ui_common.title_label": {
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 보여줄 글자
                      "text": "('rainbowpie.ui.music.category.' + $category)",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "album_template": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 70, 116 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 오버라이드 가능한 변수
    "$album_cover_texture|default": "($rainbowpie_ui_path_home + '/music_player/album_volume_alpha')",
    // 오버라이드 가능한 변수
    "$album_title|default": "Album Template",
    // 오버라이드 가능한 변수
    "$album_sound_name|default": "random.click",
    // 오버라이드 가능한 변수
    "$album_section_topic|default": "none",
    // 오버라이드 가능한 변수
    "$album_forced_index|default": 1000,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@rainbowpie_ui_common.text_background": {
          // 가로/세로 크기
          "size": [ "100%", "100% - 26px" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "cover_image": {
                // 이미지 표시
                "type": "image",
                // ?? ??
                "fill": true,
                // 사용할 이미지 경로
                "texture": "$album_cover_texture",
                // 가로/세로 크기
                "size": [ "100%", "100% - 14px" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "music_title@rainbowpie_ui_common.text_label": {
                // 가로/세로 크기
                "size": [ "100% - 4px", 14 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "100% - 14px" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 보여줄 글자
                "text": "$album_title",
                // ?? ?? ??
                "font_scale_factor": 1.4,
                // 겹치는 순서(숫자 클수록 위)
                "layer": 5
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "button_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100% + 1px", 25 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "play_button@common_buttons.light_content_button": {
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100% - 1px", "100%" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 20,
                // 가로/세로 크기
                "size": [ "100%y", "100%" ],
                // 오버라이드 가능한 변수
                "$pressed_button_name": "rainbowpie.music_empty",
                // 오버라이드 가능한 변수
                "$button_content": "rainbowpie_ui_music_player.play_button_icon",
                // ??? ??
                "sound_name": "$album_sound_name",
                // ??? ?? ?
                "sound_volume": 1.0,
                // ??? ?? ?
                "sound_pitch": 1
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "section_toggle_button@common_toggles.light_ui_toggle": {
                // 가로/세로 크기
                "size": [ "fill", "100%" ],

                // 오버라이드 가능한 변수
                "$button_image_size": [ "100% - 1px", "100%" ],
                // 오버라이드 가능한 변수
                "$unchecked_control": "rainbowpie_ui_toggle.toggle_button_unchecked",
                // 오버라이드 가능한 변수
                "$checked_control": "rainbowpie_ui_toggle.toggle_button_checked",
                // 오버라이드 가능한 변수
                "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_button_unchecked_hover",
                // 오버라이드 가능한 변수
                "$checked_hover_control": "rainbowpie_ui_toggle.toggle_button_checked_hover",
                // 오버라이드 가능한 변수
                "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_button_unchecked_locked",
                // 오버라이드 가능한 변수
                "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_button_unchecked_locked_hover",
                // 오버라이드 가능한 변수
                "$checked_locked_control": "rainbowpie_ui_toggle.toggle_button_checked_locked",
                // 오버라이드 가능한 변수
                "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_button_checked_locked_hover",

                // 오버라이드 가능한 변수
                "$button_text_binding_type": "none",
                // 오버라이드 가능한 변수
                "$button_binding_condition": "none",
                // 오버라이드 가능한 변수
                "$button_text_grid_collection_name": "none",
                // 오버라이드 가능한 변수
                "$button_text": "rainbowpie.ui.music.button.seeAll",
                // 오버라이드 가능한 변수
                "$button_offset": [ 0, 0 ],

                // 오버라이드 가능한 변수
                "$radio_toggle_group": true,
                // 오버라이드 가능한 변수
                "$toggle_name": "rainbowpieui_music_player_navigation_tab",
                // 오버라이드 가능한 변수
                "$toggle_group_default_selected": "$default_selector_toggle_index",

                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$album_forced_index",

                // 오버라이드 가능한 변수
                "$toggle_view_binding_name": "($album_section_topic + '_second_button_toggle')"
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "music_template_button": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 29 ],
    // ?? ????
    "clips_children": true,
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,

    // 오버라이드 가능한 변수
    "$music_button_sound|default": "null",
    // 오버라이드 가능한 변수
    "$music_pitch|default": 1.0,
    // 오버라이드 가능한 변수
    "$music_button_text|default": "null",
    // 오버라이드 가능한 변수
    "$music_button_texture|default": "",
    // 오버라이드 가능한 변수
    "$music_button_duration|default": 0,
    // 오버라이드 가능한 변수
    "$music_button_stoppable|default": true,

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@rainbowpie_ui_common.text_background": {
          // 가로/세로 크기
          "size": [ "100%", "100% - 1px" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "progress_bar": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 0, "100%" ],
                // ????? ?? ?
                "animation_reset_name": "($music_button_sound + '_stop')",
                // 애니메이션 목록
                "anims": [
                  "@rainbowpie_ui_music_player.music_progress_bar_panel_panel"
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "music_progress_bar_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 0, "100%" ],
                      // ????? ?? ?
                      "animation_reset_name": "$music_button_sound",
                      // 애니메이션 목록
                      "anims": [
                        "@rainbowpie_ui_music_player.music_progress_bar_panel"
                      ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "music_progress_bar": {
                            // 이미지 표시
                            "type": "image",
                            // 완전히 제거(공간도 없음)
                            "ignored": "($music_button_duration = 0)",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ "-100%", 0 ],
                            // 사용할 이미지 경로
                            "texture": "textures/ui/White",
                            // ?? (R,G,B,A)
                            "color": "$rainbowpie_ui_theme_button_background_hover_color",
                            // ???
                            "alpha": "$rainbowpie_ui_theme_button_background_hover_alpha",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 2,
                            // ????? ?? ?
                            "animation_reset_name": "$music_button_sound",
                            // 애니메이션 목록
                            "anims": [
                              "@rainbowpie_ui_music_player.music_progress_bar_wait"
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "music_icon": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 12,
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "$music_button_texture",
                // 가로/세로 크기
                "size": [ "100%y", "100% - 2px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 1, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "play_button@common_buttons.light_content_button": {
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 12,
                // 가로/세로 크기
                "size": [ "100%y", "100% - 2px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 28, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "$music_button_sound",
                // 오버라이드 가능한 변수
                "$button_content": "rainbowpie_ui_music_player.play_button_icon",
                // ??? ??
                "sound_name": "$music_button_sound",
                // ??? ?? ?
                "sound_volume": 1.0,
                // ??? ?? ?
                "sound_pitch": "$music_pitch"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "stop_button@common_buttons.light_content_button": {
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                // 보이기/숨기기(공간 유지)
                "visible": "$music_button_stoppable",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 12,
                // 가로/세로 크기
                "size": [ "100%y", "100% - 2px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 55, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "($music_button_sound + '_stop')",
                // 오버라이드 가능한 변수
                "$button_content": "rainbowpie_ui_music_player.stop_button_icon",
                // ??? ??
                "sound_name": "$music_button_sound",
                // ??? ?? ?
                "sound_volume": 0.0000000000001,
                // ??? ?? ?
                "sound_pitch": 0.0
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "music_title@rainbowpie_ui_common.text_label": {
                // 가로/세로 크기
                "size": [ "100% - 58px", 14 ],
                // 오버라이드 가능한 변수
                "$text_offset|default": [ 59, 0 ],
                // 기준점에서 이동하는 거리
                "offset": "$text_offset",
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // ?? ?? ??
                "font_scale_factor": 1.4,
                // ?? ??
                "text_alignment": "left",
                // 보여줄 글자
                "text": "$music_button_text",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 12,
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$music_button_stoppable",
                    // 오버라이드 가능한 변수
                    "$text_offset": [ 86, 0 ]
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "play_button_icon": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "image": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 사용할 이미지 경로
          "texture": "textures/ui/store_play_button"
        }
      }
    ]
  },

  // ???/?? ??
  "stop_button_icon": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "image": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 가로/세로 크기
          "size": [ "100% - 8px", "100% - 8px" ],
          // 사용할 이미지 경로
          "texture": "textures/ui/White"
        }
      }
    ]
  },

  // ???/?? ??
  "music_progress_bar": {
    // 위치 이동
    "anim_type": "offset",
    // 걸리는 시간(초)
    "duration": "($music_button_duration)",
    // 시작 값
    "from": [ "-100%", 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // 다음 애니메이션으로 연결
    "next": "@rainbowpie_ui_music_player.music_progress_bar_wait"
  },

  // ???/?? ??
  "music_progress_bar_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 0,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpie_ui_music_player.music_progress_bar"
  },

  // ???/?? ??
  "music_progress_bar_panel": {
    // 크기 변화
    "anim_type": "size",
    // 걸리는 시간(초)
    "duration": 0,
    // 시작 값
    "from": [ 0, "100%" ],
    // 끝 값
    "to": [ "100%", "100%" ],
    // 다음 애니메이션으로 연결
    "next": "@rainbowpie_ui_music_player.music_progress_bar_panel_wait"
  },

  // ???/?? ??
  "music_progress_bar_panel_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": "($music_button_duration)",
    // 다음 애니메이션으로 연결
    "next": "@rainbowpie_ui_music_player.music_progress_bar_panel_reset",
    // ?? ??
    "reset_event": "$music_button_sound"
  },

  // ???/?? ??
  "music_progress_bar_panel_reset": {
    // 크기 변화
    "anim_type": "size",
    // 걸리는 시간(초)
    "duration": 0,
    // 시작 값
    "from": [ 0, "100%" ],
    // 끝 값
    "to": [ 0, "100%" ],
    // ?? ??
    "end_event": "$music_button_sound"
  },

  // ???/?? ??
  "music_progress_bar_panel_panel": {
    // 크기 변화
    "anim_type": "size",
    // 걸리는 시간(초)
    "duration": 0,
    // 시작 값
    "from": [ 0, "100%" ],
    // 끝 값
    "to": [ "100%", "100%" ],
    // ?? ??
    "play_event": "$music_button_sound"
  },

  // ???/?? ??
  "main_sections": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "($section_topic + '_button_toggle')",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#tab_selected"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "($section_topic + '_second_button_toggle')",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#button_selected"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#tab_selected or #button_selected)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "section_toggle_button": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "25px" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "section_toggle_button@common_toggles.light_ui_toggle": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 가로/세로 크기
          "size": [ "100%", "25px" ],
          // 오버라이드 가능한 변수
          "$button_type_panel": "rainbowpie_ui_music_player.toggle_button_control",
          // 오버라이드 가능한 변수
          "$unchecked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked",
          // 오버라이드 가능한 변수
          "$checked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked",
          // 오버라이드 가능한 변수
          "$unchecked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_hover",
          // 오버라이드 가능한 변수
          "$checked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_hover",
          // 오버라이드 가능한 변수
          "$unchecked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
          // 오버라이드 가능한 변수
          "$unchecked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
          // 오버라이드 가능한 변수
          "$checked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked",
          // 오버라이드 가능한 변수
          "$checked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked",

          // 오버라이드 가능한 변수
          "$radio_toggle_group": true,
          // 오버라이드 가능한 변수
          "$toggle_name": "rainbowpieui_music_player_navigation_tab",
          // 오버라이드 가능한 변수
          "$toggle_group_default_selected": "$default_selector_toggle_index",

          // 오버라이드 가능한 변수
          "$toggle_view_binding_name": "($section_topic + '_button_toggle')"
        }
      }
    ]
  },

  // ???/?? ??
  "toggle_button_control": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "tab_button_text@rainbowpie_ui_common.text_label_notheme": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 가로/세로 크기
          "size": [ "100% - 10px", "default" ],
          // ?? ?? ?
          "max_size": [ "100% - 14px", "100% - 4px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 10, 0 ],
          // 보여줄 글자
          "text": "('rainbowpie.ui.music.section.' + $section_topic)",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // ?? (R,G,B,A)
          "color": "$text_color"
        }
      }
    ]
  }
}

ui extras

add_external_server_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: add_external_server_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_add_external_server",

  // ???/?? ??
  "add_external_server_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialogheader_title": "#title_text",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialogheader_title_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#title_text",
              // ?? ???
              "binding_condition": "once"
            }
          ],
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_content": "rainbowpieui_add_external_server.content_panel",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_show_background": false,
          // 가로/세로 크기
          "size": [ 316, 162 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8
        }
      },
      {
        // ???/?? ??
        "blur_panel_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ "50% - 158px", 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "blur_panel_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // ?? ????
                "clips_children": true,
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "50% - 81px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "blur_layer_1@mintui_background.background_blur": {
                      // 오버라이드 가능한 변수
                      "$background_offset": [ "-100% + 316px", "-100% + 162px" ],
                      // 오버라이드 가능한 변수
                      "$background_children_offset": [ "50% - 158px", "50% - 81px" ],
                      // 오버라이드 가능한 변수
                      "$background_layer": 2
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "mask_layer_1@mintui_background.background_mask": {
                      // 오버라이드 가능한 변수
                      "$background_offset": [ "-100% + 316px", "-100% + 162px" ],
                      // 오버라이드 가능한 변수
                      "$background_children_offset": [ "50% - 158px", "50% - 81px" ],
                      // 오버라이드 가능한 변수
                      "$background_layer": 2
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "content_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "main_content@add_external_server.content_panel": {
                      // 가로/세로 크기
                      "size": [ "100% - 4px", "100% - 4px" ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c + 1px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100% + 1px", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "button_stack_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 가로/세로 크기
                            "size": [ "100%", 23 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "play@add_external_server.play_button": {
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_default_alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 오버라이드 가능한 변수
                                  "$button_image_size": [ "100% - 1px", "100%" ],
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "remove@add_external_server.remove_button": {
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_default_alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 오버라이드 가능한 변수
                                  "$button_image_size": [ "100% - 1px", "100%" ],
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "save@add_external_server.save_button": {
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_default_alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 오버라이드 가능한 변수
                                  "$button_image_size": [ "100% - 1px", "100%" ],
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

anvil_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: anvil_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_anvil",

  // ???/?? ??
  "anvil_item_slot": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_item@rainbowpie_ui_inventory_and_container.container_item": {
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center"
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "anvil_root_panel@common.root_panel": {
    // 가로/세로 크기
    "size": [ 168, 161 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "inventory_selected_icon_button@common.inventory_selected_icon_button": {} },
      { "gamepad_cursor@common.gamepad_cursor_button": {} },
      { "inventory_take_progress_icon_button@common.inventory_take_progress_icon_button": {} },
      {
        // ???/?? ??
        "inventory_ui_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 애니메이션 목록
          "anims": [
            "@rainbowpie_ui_animations.container_panel_exit_animation_push",
            "@rainbowpie_ui_animations.container_panel_exit_animation_pop",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_push",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_pop"
          ],
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "anvil_background_icon@rainbowpie_ui_inventory.background_icon": {
                // 가로/세로 크기
                "size": "$rainbowpie_ui_theme_inventory_bgicon_anvil_size",
                // 기준점에서 이동하는 거리
                "offset": "$rainbowpie_ui_theme_inventory_bgicon_anvil_offset",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$rainbowpie_ui_theme_inventory_bgicon_anvil_anchor",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$rainbowpie_ui_theme_inventory_bgicon_anvil_anchor",
                // 사용할 이미지 경로
                "texture": "$rainbowpie_ui_theme_inventory_bgicon_anvil_texture",
                // ???
                "alpha": "$rainbowpie_ui_theme_inventory_bgicon_anvil_alpha",
                // ?? ??
                "fill": "$rainbowpie_ui_theme_inventory_bgicon_anvil_fill"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background_icon@rainbowpie_ui_inventory.background_icon": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory_header@rainbowpie_ui_inventory.header": {
                // 가로/세로 크기
                "size": [ "100%", "14.28571428571429%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title": "container.repair",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border1_size": [ "2.380952380952381%", 0 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border2_size": [ "2.380952380952381%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "common_panel@common.common_panel": {
                // 오버라이드 가능한 변수
                "$dialog_background": "rainbowpie_ui_common.inventory_background",
                // 오버라이드 가능한 변수
                "$show_close_button": false,
                // 가로/세로 크기
                "size": [ "100%", "100% - 14.28571428571429%" ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle"
              }
            },
            {
              // ???/?? ??
              "top_half_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "33.54037267080745%" ], // 162x54
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-50.31055900621118%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "text_edit_control@anvil.text_edit_control": {
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 가로/세로 크기
                      "size": [ "100% - 105.5555555555556%y", "33.33333333333333%" ],
                      // 오버라이드 가능한 변수
                      "$edit_box_indent_size": [ "100%", "100%" ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "maximized_input_button@rainbowpieui_anvil.maximized_input_toggle_base": {
                      // 오버라이드 가능한 변수
                      "$button_image_size": [ "100%", "100%" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_right",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_right",
                      // 가로/세로 크기
                      "size": [ "100%y", "33.33333333333333%" ],
                      // 오버라이드 가능한 변수
                      "$toggle_group_forced_index": 1000,
                      // 오버라이드 가능한 변수
                      "$toggle_view_binding_name": "maximized_input",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "maximized_input",
                          // 계산식/참조 값
                          "source_property_name": "(not #toggle_state)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#enabled"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "recipe_grid": {
                      // 격자 컨테이너: 칸칸이 배치
                      "type": "grid",
                      // 가로/세로 크기
                      "size": [ "83%", "33.33333333333333%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, "-14.81481481481481%" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 그리드 칸 수
                      "grid_dimensions": [ 5, 1 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "input_item_slot@rainbowpieui_anvil.anvil_item_slot": {
                            // 그리드 위치
                            "grid_position": [ 0, 0 ],
                            // 오버라이드 가능한 변수
                            "$item_collection_name": "anvil_input_items",

                            // 오버라이드 가능한 변수
                            "$focus_id_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_id": "anvil_input",

                            // 오버라이드 가능한 변수
                            "$focus_override_right_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_right": "anvil_material"
                          }
                        },
                        {
                          // ???/?? ??
                          "plus": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 그리드 위치
                            "grid_position": [ 1, 0 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "plus_sign_icon@anvil.plus_sign_icon": {
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 3,
                                  // 가로/세로 크기
                                  "size": [ "100%y", "72.22222222222222%" ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "material_item_slot@rainbowpieui_anvil.anvil_item_slot": {
                            // 그리드 위치
                            "grid_position": [ 2, 0 ],
                            // 오버라이드 가능한 변수
                            "$item_collection_name": "anvil_material_items",

                            // 오버라이드 가능한 변수
                            "$focus_id_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_id": "anvil_material",

                            // 오버라이드 가능한 변수
                            "$focus_override_left_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_left": "anvil_input",

                            // 오버라이드 가능한 변수
                            "$focus_override_right_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_right": "anvil_result"
                          }
                        },
                        {
                          // ???/?? ??
                          "yields": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 그리드 위치
                            "grid_position": [ 3, 0 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "arrow_icon@anvil.arrow_icon": {
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 3,
                                  // 가로/세로 크기
                                  "size": [ "150%y", "66.66666666666667%" ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "cross_out_icon@anvil.cross_out_icon": {
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 4,
                                  // 가로/세로 크기
                                  "size": [ "150%y", "66.66666666666667%" ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "result_item_slot@rainbowpieui_anvil.anvil_item_slot": {
                            // 그리드 위치
                            "grid_position": [ 4, 0 ],
                            // 오버라이드 가능한 변수
                            "$item_collection_name": "anvil_result_items",
                            // 오버라이드 가능한 변수
                            "$button_ref": "anvil.anvil_output_slot_button",

                            // 오버라이드 가능한 변수
                            "$focus_id_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_id": "anvil_result",

                            // 오버라이드 가능한 변수
                            "$focus_override_left_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_left": "anvil_material"
                          }
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "cost_label_0@anvil.cost_label": {
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 2 ],
                      // ?? (R,G,B,A)
                      "color": "$anvil_cost_fail_text_color",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#cost_text",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#text"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "#cost_text_red",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "cost_label_1@anvil.cost_label": {
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 2 ],
                      // ?? (R,G,B,A)
                      "color": "$anvil_cost_success_text_color",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#cost_text",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#text"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "#cost_text_green",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory@rainbowpie_ui_inventory_and_container.inventory_panel_bottom_half": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "33.54037267080745%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-14.90683229813665%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar@rainbowpie_ui_inventory_and_container.hotbar_grid_template": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "11.18012422360248%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-1.863354037267081%" ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "maximized_input_dialog_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "modal_input_panel@rainbowpieui_anvil.modal_input_panel": {
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "maximized_input_dialog@rainbowpieui_anvil.maximized_input_dialog": {}
            }
          ]
        }
      }
    ],
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "maximized_input",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "modal_input_panel@common.input_panel": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 100,
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_select",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_select",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_secondary_select",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_secondary_select",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_ok",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_ok",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_cancel",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_cancel",
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_up",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_up",
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "scope": "view"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_down",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_down",
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "scope": "view"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_left",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_left",
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "scope": "view"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_right",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_right",
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "scope": "view"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "maximized_input_dialog@rainbowpie_ui_dialog.dialog_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_title": "tile.anvil.name",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_extra_controls": "rainbowpieui_anvil.maximized_input_dialog_button",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_show_close": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialog_content": "rainbowpieui_anvil.maximized_input_dialog_content",
    // 가로/세로 크기
    "size": "$extra_large_screen_size",
    // ?? ?? ?
    "max_size": "$extra_large_max_screen_size",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 110
  },

  // ???/?? ??
  "maximized_input_dialog_button": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "minimized_input_button@rainbowpieui_anvil.maximized_input_toggle_base": {
                // 오버라이드 가능한 변수
                "$toggle_focus_enabled": false,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_default_alpha": 0.0,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_hover_color": "$rainbowpie_ui_theme_closebutton_hover_background_color",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_hover_alpha": "$rainbowpie_ui_theme_closebutton_hover_background_alpha",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_pressed_color": "$rainbowpie_ui_theme_closebutton_pressed_background_color",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_pressed_alpha": "$rainbowpie_ui_theme_closebutton_pressed_background_alpha",
                // 오버라이드 가능한 변수
                "$button_content": "rainbowpieui_anvil.close_button_icon",
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 가로/세로 크기
                "size": [ "100%y", "100%" ],
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": 1001,
                // 오버라이드 가능한 변수
                "$toggle_view_binding_name": "minimized_input",
                // 오버라이드 가능한 변수
                "$button_mappings": [
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_select",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_ok",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_cancel",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "maximized_input_dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anvil_multiline_text_edit_box@rainbowpieui_anvil.anvil_multiline_text_edit_box": {}
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "anvil_multiline_text_edit_box@common.multiline_text_edit_box": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_editbox_enabled": true,
    // 오버라이드 가능한 변수
    "$edit_box_indent_size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [ "100% - 4px", "100% - 4px" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // ?? ?? ?
    "max_length": 32500,
    // 이 컨트롤 안에서 쓰는 임시 저장소
    "property_bag": {
      // ???/??? ?
      "#property_field": "#item_name"
    },
    // 오버라이드 가능한 변수
    "$text_edit_binding_name": "#text_box_item_name",
    // 오버라이드 가능한 변수
    "$place_holder_text": "Enter your content here..."
  },

  // ???/?? ??
  "close_button_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/global/close_button/close')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_localui_button_text_color"
  },

  // ???/?? ??
  "maximize_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "150%", "150%" ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/global/maximize_icon')"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "maximized_input_toggle_base@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_anvil.maximize_icon",

    // 오버라이드 가능한 변수
    "$button_type_panel": "common_buttons.new_ui_binding_button_label",
    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_anvil_maximized_input",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 1001,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  }
}

book_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: book_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_book",

  // 다른 템플릿을 가져와서 확장(상속)
  "top_tab@common_tabs.tab_top": {
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": 0.0,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.2,

    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$toggle_tts_enabled_binding_type": "global",
    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpieui_navigation_tab",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 10,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 오버라이드 가능한 변수
    "$toggle_tts_type_priority": 1001,
    // 오버라이드 가능한 변수
    "$toggle_tts_toggle_on_text": "",
    // 오버라이드 가능한 변수
    "$toggle_tts_toggle_off_text": "",
    // 오버라이드 가능한 변수
    "$toggle_tts_index_priority": 1002,
    // 오버라이드 가능한 변수
    "$tab_content": "rainbowpieui_book.top_tab_content"
  },

  // ???/?? ??
  "top_tab_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "tab_label@rainbowpie_ui_common.text_label_notheme": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 가로/세로 크기
          "size": [ "default", "default" ],
          // ?? ??
          "text_alignment": "center",
          // 보여줄 글자
          "text": "$tab_text",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "maximized_input_dialog@rainbowpie_ui_dialog.dialog_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_title": "item.writable_book.name",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_extra_controls": "rainbowpieui_book.maximized_input_dialog_button",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_show_close": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialog_content": "rainbowpieui_book.maximized_input_dialog_content",
    // 가로/세로 크기
    "size": "$extra_large_screen_size",
    // ?? ?? ?
    "max_size": "$extra_large_max_screen_size",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 110
  },

  // ???/?? ??
  "maximized_input_dialog_button": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "tab_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ 100, "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title_navigation_tab@rainbowpieui_book.top_tab": {
                      // 가로/세로 크기
                      "size": [ "fill", "100%" ],
                      // 오버라이드 가능한 변수
                      "$tab_view_binding_name": "title_navigation_tab_toggle",
                      // 오버라이드 가능한 변수
                      "$tab_text": "rainbowpie.ui.book.tab.title",
                      // 오버라이드 가능한 변수
                      "$toggle_group_forced_index": 10
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "auther_navigation_tab@rainbowpieui_book.top_tab": {
                      // 가로/세로 크기
                      "size": [ "fill", "100%" ],
                      // 오버라이드 가능한 변수
                      "$tab_view_binding_name": "auther_navigation_tab_toggle",
                      // 오버라이드 가능한 변수
                      "$tab_text": "rainbowpie.ui.book.tab.auther",
                      // 오버라이드 가능한 변수
                      "$toggle_group_forced_index": 11
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "minimized_input_button@rainbowpieui_book.maximized_input_toggle_base": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_default_alpha": 0.0,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_hover_color": "$rainbowpie_ui_theme_closebutton_hover_background_color",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_hover_alpha": "$rainbowpie_ui_theme_closebutton_hover_background_alpha",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_pressed_color": "$rainbowpie_ui_theme_closebutton_pressed_background_color",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_pressed_alpha": "$rainbowpie_ui_theme_closebutton_pressed_background_alpha",
                // 오버라이드 가능한 변수
                "$button_content": "rainbowpieui_book.close_button_icon",
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 가로/세로 크기
                "size": [ "100%y", "100%" ],
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": 1001,
                // 오버라이드 가능한 변수
                "$toggle_view_binding_name": "minimized_input",
                // 오버라이드 가능한 변수
                "$button_mappings": [
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_select",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_ok",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_cancel",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "maximized_input_dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "title_text_box": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "title_multiline_text_edit_box@rainbowpieui_book.title_multiline_text_edit_box": {} }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "title_navigation_tab_toggle",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "author_text_box": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "auther_multiline_text_edit_box@rainbowpieui_book.auther_multiline_text_edit_box": {} }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "auther_navigation_tab_toggle",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "title_multiline_text_edit_box@common.multiline_text_edit_box": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_editbox_enabled": true,
    // 오버라이드 가능한 변수
    "$edit_box_indent_size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [ "100% - 4px", "100% - 4px" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // ?? ?? ?
    "max_length": 32500,
    // 오버라이드 가능한 변수
    "$text_box_name": "#title_text_box",
    // 오버라이드 가능한 변수
    "$text_box_enabled_binding_name": "#editable",
    // 오버라이드 가능한 변수
    "$text_edit_box_content_binding_name": "#title_text_box_item_name",
    // 오버라이드 가능한 변수
    "$place_holder_text": "Enter your content here...",
    // 오버라이드 가능한 변수
    "$enable_profanity_filter": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "auther_multiline_text_edit_box@common.multiline_text_edit_box": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_editbox_enabled": true,
    // 오버라이드 가능한 변수
    "$edit_box_indent_size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [ "100% - 4px", "100% - 4px" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // ?? ?? ?
    "max_length": 32500,
    // 오버라이드 가능한 변수
    "$text_box_name": "#author_text_box",
    // 오버라이드 가능한 변수
    "$text_box_enabled_binding_name": "#author_editable",
    // 오버라이드 가능한 변수
    "$text_edit_box_content_binding_name": "#author_text_box_item_name",
    // 오버라이드 가능한 변수
    "$place_holder_text": "Enter your content here...",
    // 오버라이드 가능한 변수
    "$enable_profanity_filter": true
  },

  // ???/?? ??
  "close_button_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/global/close_button/close')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_localui_button_text_color"
  },

  // ???/?? ??
  "maximize_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 18, 18 ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/global/maximize_icon')"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "maximized_input_toggle_base@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_book.maximize_icon",

    // 오버라이드 가능한 변수
    "$button_type_panel": "common_buttons.new_ui_binding_button_label",
    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_book_maximized_input",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 1001,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  },

  // ???/?? ??
  "book_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_ingame_anim1": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // ???/?? ??
              "screen_content": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "book_screen_content@book.book_screen_content": {} }
                ],
                // 보이기/숨기기(공간 유지)
                "visible": true,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "maximized_input",
                    // 계산식/참조 값
                    "source_property_name": "(not #toggle_state)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "subscreen_content": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "maximized_input_dialog@rainbowpieui_book.maximized_input_dialog": {} }
                ],
                // 보이기/숨기기(공간 유지)
                "visible": false,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "maximized_input",
                    // 계산식/참조 값
                    "source_property_name": "#toggle_state",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

brewing_stand_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: brewing_stand_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_brewing_stand",

  // 다른 템플릿을 가져와서 확장(상속)
  "fuel_empty_image@brewing_stand.fuel_empty_image": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, "-5.555555555555556%" ],
    // 가로/세로 크기
    "size": [ "88.88888888888889%", "88.88888888888889%" ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "bottle_empty_image@brewing_stand.bottle_empty_image": {
    // 기준점에서 이동하는 거리
    "offset": [ "5.555555555555556%", "-5.555555555555556%" ],
    // 가로/세로 크기
    "size": [ "88.88888888888889%", "88.88888888888889%" ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "brewingstand_output_item@rainbowpie_ui_inventory_and_container.container_item": {
    // 오버라이드 가능한 변수
    "$cell_overlay_ref": "rainbowpieui_brewing_stand.bottle_empty_image",
    // 오버라이드 가능한 변수
    "$item_collection_name": "brewing_result_items"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "brewing_stand_root_panel@common.root_panel": {
    // 가로/세로 크기
    "size": [ 168, 166 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "inventory_selected_icon_button@common.inventory_selected_icon_button": {} },
      { "gamepad_cursor@common.gamepad_cursor_button": {} },
      { "inventory_take_progress_icon_button@common.inventory_take_progress_icon_button": {} },
      {
        // ???/?? ??
        "inventory_ui_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 애니메이션 목록
          "anims": [
            "@rainbowpie_ui_animations.container_panel_exit_animation_push",
            "@rainbowpie_ui_animations.container_panel_exit_animation_pop",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_push",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_pop"
          ],
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "brewingstand_background_icon@rainbowpie_ui_inventory.background_icon": {
                // 가로/세로 크기
                "size": "$rainbowpie_ui_theme_inventory_bgicon_brewingstand_size",
                // 기준점에서 이동하는 거리
                "offset": "$rainbowpie_ui_theme_inventory_bgicon_brewingstand_offset",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$rainbowpie_ui_theme_inventory_bgicon_brewingstand_anchor",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$rainbowpie_ui_theme_inventory_bgicon_brewingstand_anchor",
                // 사용할 이미지 경로
                "texture": "$rainbowpie_ui_theme_inventory_bgicon_brewingstand_texture",
                // ???
                "alpha": "$rainbowpie_ui_theme_inventory_bgicon_brewingstand_alpha",
                // ?? ??
                "fill": "$rainbowpie_ui_theme_inventory_bgicon_brewingstand_fill"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background_icon@rainbowpie_ui_inventory.background_icon": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory_header@rainbowpie_ui_inventory.header": {
                // 가로/세로 크기
                "size": [ "100%", "13.85542168674699%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title": "$container_title",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border1_size": [ "2.380952380952381%", 0 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border2_size": [ "2.380952380952381%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "common_panel@common.common_panel": {
                // 오버라이드 가능한 변수
                "$dialog_background": "rainbowpie_ui_common.inventory_background",
                // 오버라이드 가능한 변수
                "$show_close_button": false,
                // 가로/세로 크기
                "size": [ "100%", "100% - 13.85542168674699%" ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle"
              }
            },
            {
              // ???/?? ??
              "brewing_panel_top_half": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "35.5421686746988%" ], // 162x59
                // 기준점에서 이동하는 거리
                "offset": [ 0 , "-48.79518072289157%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "brewing_stand_pictogram": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, "-5.084745762711864%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "brewing_input_slot": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%y", "30.50847457627119%" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ 0, "-30.50847457627119%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "input_grid_item@rainbowpie_ui_inventory_and_container.container_item": {
                                  // 오버라이드 가능한 변수
                                  "$item_collection_name": "brewing_input_item",

                                  // 오버라이드 가능한 변수
                                  "$focus_override_left_binding_type": "none",
                                  // 오버라이드 가능한 변수
                                  "$focus_override_left": "brewing_fuel"
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "brewing_output_slots": {
                            // 격자 컨테이너: 칸칸이 배치
                            "type": "grid",
                            // 가로/세로 크기
                            "size": [ "33.33333333333333%", "30.50847457627119%" ], // 54x18
                            // 기준점에서 이동하는 거리
                            "offset": [ 0, "38.98305084745763%" ],
                            // 그리드 칸 수
                            "grid_dimensions": [ 3, 1 ],
                            // 목록 이름
                            "collection_name": "brewing_result_items",
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "left_offset": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 그리드 위치
                                  "grid_position": [ 0, 0 ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "output_grid_item1@rainbowpieui_brewing_stand.brewingstand_output_item": {
                                        // 기준점에서 이동하는 거리
                                        "offset": [ "-27.77777777777778%", "-38.88888888888889%" ],

                                        // 오버라이드 가능한 변수
                                        "$focus_override_left_binding_type": "none",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_left": "brewing_fuel"
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "output_grid_item2@rainbowpieui_brewing_stand.brewingstand_output_item": {
                                  // 그리드 위치
                                  "grid_position": [ 1, 0 ]
                                }
                              },
                              {
                                // ???/?? ??
                                "right_offset": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 그리드 위치
                                  "grid_position": [ 2, 0 ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "output_grid_item3@rainbowpieui_brewing_stand.brewingstand_output_item": {
                                        // 기준점에서 이동하는 거리
                                        "offset": [ "27.77777777777778%", "-38.88888888888889%" ]
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "brewing_fuel_slot": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%y", "30.50847457627119%" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ "-43.20987654320988%", "-30.50847457627119%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "fuel_grid_item@rainbowpie_ui_inventory_and_container.container_item": {
                                  // 오버라이드 가능한 변수
                                  "$cell_overlay_ref": "rainbowpieui_brewing_stand.fuel_empty_image",
                                  // 오버라이드 가능한 변수
                                  "$item_collection_name": "brewing_fuel_item",

                                  // 오버라이드 가능한 변수
                                  "$focus_id_binding_type": "none",
                                  // 오버라이드 가능한 변수
                                  "$focus_id": "brewing_fuel",

                                  // 오버라이드 가능한 변수
                                  "$focus_override_right_binding_type": "none",
                                  // 오버라이드 가능한 변수
                                  "$focus_override_right": "brewing_input_item0"
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "brewing_arrow_empty_image@brewing_stand.brewing_arrow_empty_image": {
                            // 기준점에서 이동하는 거리
                            "offset": [ "9.876543209876543%", "-23.72881355932203%" ],
                            // 가로/세로 크기
                            "size": [ "5.555555555555556%", "47.45762711864407%" ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "brewing_arrow_full_image@brewing_stand.brewing_arrow_full_image": {
                            // 기준점에서 이동하는 거리
                            "offset": [ "9.876543209876543%", "-23.72881355932203%" ],
                            // 가로/세로 크기
                            "size": [ "5.555555555555556%", "47.45762711864407%" ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "brewing_fuel_bar_empty_image@brewing_stand.brewing_fuel_bar_empty_image": {
                            // 기준점에서 이동하는 거리
                            "offset": [ "-14.19753086419753%", "5.084745762711864%" ],
                            // 가로/세로 크기
                            "size": [ "14.81481481481481%", "10.16949152542373%" ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "brewing_fuel_bar_full_image@brewing_stand.brewing_fuel_bar_full_image": {
                            // 기준점에서 이동하는 거리
                            "offset": [ "-14.19753086419753%", "5.084745762711864%" ],
                            // 가로/세로 크기
                            "size": [ "13.58024691358025%", "6.779661016949153%" ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "bubbles_empty_image@brewing_stand.bubbles_empty_image": {
                            // 기준점에서 이동하는 거리
                            "offset": [ "-14.19753086419753%", "-23.72881355932203%" ],
                            // 가로/세로 크기
                            "size": [ "7.407407407407407%", "50.84745762711864%" ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "bubbles_full_image@brewing_stand.bubbles_full_image": {
                            // 기준점에서 이동하는 거리
                            "offset": [ "-14.19753086419753%", "-23.72881355932203%" ],
                            // 가로/세로 크기
                            "size": [ "7.407407407407407%", "50.84745762711864%" ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "brewing_fuel_pipes@brewing_stand.brewing_fuel_pipes": {
                            // 기준점에서 이동하는 거리
                            "offset": [ "-29.01234567901235%", "-8.474576271186441%" ],
                            // 가로/세로 크기
                            "size": [ "18.51851851851852%", "37.28813559322034%" ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "brewing_pipes@brewing_stand.brewing_pipes": {
                            // 기준점에서 이동하는 거리
                            "offset": [ 0, "5.084745762711864%" ],
                            // 가로/세로 크기
                            "size": [ "18.51851851851852%", "44.06779661016949%" ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory@rainbowpie_ui_inventory_and_container.inventory_panel_bottom_half": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "32.53012048192771%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-14.4578313253012%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar@rainbowpie_ui_inventory_and_container.hotbar_grid_template": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "10.8433734939759%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-1.807228915662651%" ]
              }
            }
          ]
        }
      }
    ]
  }
}

cartography_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: cartography_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_cartography",

  // ???/?? ??
  "maximized_input_dialog_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "modal_input_panel@rainbowpieui_cartography.modal_input_panel": {
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "maximized_input_dialog@rainbowpieui_cartography.maximized_input_dialog": {}
            }
          ]
        }
      }
    ],
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "maximized_input",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "modal_input_panel@common.input_panel": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 100,
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_select",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_select",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_secondary_select",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_secondary_select",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_ok",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_ok",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_cancel",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_cancel",
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_up",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_up",
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "scope": "view"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_down",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_down",
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "scope": "view"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_left",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_left",
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "scope": "view"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_right",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_right",
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "scope": "view"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "maximized_input_dialog@rainbowpie_ui_dialog.dialog_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_title": "map.name",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_extra_controls": "rainbowpieui_cartography.maximized_input_dialog_button",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_show_close": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialog_content": "rainbowpieui_cartography.maximized_input_dialog_content",
    // 가로/세로 크기
    "size": "$extra_large_screen_size",
    // ?? ?? ?
    "max_size": "$extra_large_max_screen_size",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 110
  },

  // ???/?? ??
  "maximized_input_dialog_button": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "minimized_input_button@rainbowpieui_cartography.maximized_input_toggle_base": {
                // 오버라이드 가능한 변수
                "$toggle_focus_enabled": false,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_default_alpha": 0.0,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_hover_color": "$rainbowpie_ui_theme_closebutton_hover_background_color",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_hover_alpha": "$rainbowpie_ui_theme_closebutton_hover_background_alpha",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_pressed_color": "$rainbowpie_ui_theme_closebutton_pressed_background_color",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_pressed_alpha": "$rainbowpie_ui_theme_closebutton_pressed_background_alpha",
                // 오버라이드 가능한 변수
                "$button_content": "rainbowpieui_cartography.close_button_icon",
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 가로/세로 크기
                "size": [ "100%y", "100%" ],
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": 1001,
                // 오버라이드 가능한 변수
                "$toggle_view_binding_name": "minimized_input",
                // 오버라이드 가능한 변수
                "$button_mappings": [
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_select",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_ok",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_cancel",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "maximized_input_dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "cartography_multiline_text_edit_box@rainbowpieui_cartography.cartography_multiline_text_edit_box": {}
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "cartography_multiline_text_edit_box@common.multiline_text_edit_box": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_editbox_enabled": true,
    // 오버라이드 가능한 변수
    "$edit_box_indent_size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [ "100% - 4px", "100% - 4px" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // ?? ?? ?
    "max_length": 32500,
    // 오버라이드 가능한 변수
    "$place_holder_text": "Enter your content here..."
  },

  // ???/?? ??
  "close_button_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/global/close_button/close')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_localui_button_text_color"
  },

  // ???/?? ??
  "maximize_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 18, 18 ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/global/maximize_icon')"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "maximized_input_toggle_base@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_cartography.maximize_icon",

    // 오버라이드 가능한 변수
    "$button_type_panel": "common_buttons.new_ui_binding_button_label",
    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_cartography_maximized_input",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 1001,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  }
}

chat_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: chat_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_chat",

  // ???/?? ??
  "editable_message_text": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 애니메이션 목록
    "anims": ["@rainbowpieui_chat.chat_message_panel_size_animation"],
    // ?? ????
    "clips_children": true,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#chat_visible"
      },
      {
        // 가져올 값 이름
        "binding_name": "#host_main_visible"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#chat_visible and (not #host_main_visible))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "message_text@rainbowpie_ui_common.editable_label": {
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // ??? ?? ?
          "text_box_name": "message_text",
          // ??? ?? ?
          "text_control": "message_display_text",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "message_display_text": {
                // 글자 표시
                "type": "label",
                // ?? (R,G,B,A)
                "color": "$chat_text_color",
                // ?? ??
                "enable_profanity_filter": "$rainbowpie_ui_flag_chat_message_profanity_filter",
                // ?? ??
                "localize": false,
                // 가로/세로 크기
                "size": [ "100%", "default" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 보여줄 글자
                "text": "#item_name",
                // ??? ?? ?
                "text_tts": "#text_tts",
                // ??
                "font_type": "$chat_font_type",
                // ?? ?? ?
                "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
                // ?? ?? ??
                "font_scale_factor": "$chat_font_scale_factor",
                // ??/?? ?
                "line_padding": "$chat_line_spacing",
                // 애니메이션 목록
                "anims": ["@rainbowpieui_chat.chat_message_panel_animation"],
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "($rainbowpie_ui_flag_chat_use_ui_font and ($chat_font_type = 'default'))",
                    // 오버라이드 가능한 변수
                    "$chat_font_type": "$rainbowpie_ui_theme_global_font_name"
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "#text",
                    // 결과가 들어갈 속성
                    "target_property_name": "#item_name"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "chat_color_dropdown_content@rainbowpie_ui_common.rainbowpie_dropdown_content_panel": {
    // 목록 이름
    "collection_name": "font_colors"
  },

  // ???/?? ??
  "chat_settings_panel_animation": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ "200%x", 0 ],
    // 끝 값
    "to": [ 0, 0 ]
  },

  // ???/?? ??
  "chat_settings_panel_hidden": {
    // 위치 이동
    "anim_type": "offset",
    // 걸리는 시간(초)
    "duration": 0,
    // 끝 값
    "to": [ "200%", 0 ],
    // 시작 값
    "from": [ "200%", 0 ],
    // ?? ??
    "play_event": "button.close_chat_settings"
  },

  // ???/?? ??
  "chat_settings_panel_hidden2": {
    // 위치 이동
    "anim_type": "offset",
    // 걸리는 시간(초)
    "duration": 0,
    // 끝 값
    "to": [ "200%", 0 ],
    // 시작 값
    "from": [ "200%", 0 ]
  },

  // ???/?? ??
  "chat_settings_panel_hidden_animation": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ "100%x", 0 ],
    // ?? ??
    "play_event": "button.close_chat_settings",
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_chat.chat_settings_panel_hidden2"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "chat_settings_panel_hidden_animation2@rainbowpieui_chat.chat_settings_panel_hidden_animation": {
    // ?? ??
    "play_event": "button.reset_chat_settings"
  },

  // ???/?? ??
  "chat_settings_animation_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 100,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "chat_settings_background@rainbowpie_ui_common.title_background": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 가로/세로 크기
          "size": [ 150, "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ "200%", 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 102,
          // ????? ?? ?
          "animation_reset_name": "button.open_chat_settings",
          // 애니메이션 목록
          "anims": [
            "@rainbowpieui_chat.chat_settings_panel_hidden2",
            "@rainbowpieui_chat.chat_settings_panel_hidden_animation",
            "@rainbowpieui_chat.chat_settings_panel_hidden_animation2"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "header_background@rainbowpie_ui_common.text_background": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 가로/세로 크기
                "size": [ "100%", 20 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 24,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title@rainbowpie_ui_common.title_label": {
                      // 보여줄 글자
                      "text": "chat.settings",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 20
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "chat_settings_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 100,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "modal_input_panel@rainbowpieui_chat.modal_input_panel": {
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "chat_settings_background@rainbowpie_ui_common.title_background": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "right_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "right_middle",
                // 가로/세로 크기
                "size": [ 150, "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 102,
                // 애니메이션 목록
                "anims": [
                  "@rainbowpieui_chat.chat_settings_panel_animation",
                  "@rainbowpieui_chat.chat_settings_panel_hidden"
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "modal_input_panel@rainbowpieui_chat.modal_input_panel": {
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "header_background@rainbowpie_ui_common.text_background": {
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 가로/세로 크기
                            "size": [ "100%", 20 ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 24,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "back_button_content_panel@rainbowpie_ui_controls.back_content_panel": {
                                  // 오버라이드 가능한 변수
                                  "$back_button_text": "gui.exit",
                                  // 오버라이드 가능한 변수
                                  "$back_button_pressed_button_name": "button.close_chat_settings",
                                  // 기준점에서 이동하는 거리
                                  "offset": [ 2, 0 ],
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 24
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "title@rainbowpie_ui_common.title_label": {
                                  // 보여줄 글자
                                  "text": "chat.settings",
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 20
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "chat_setting_scrolling_panel@chat_settings.chat_setting_scrolling_panel": {
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_toggle_enabled": true,
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_sliderbar_enabled": true,
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_scrollbar_enabled": true,
                            // 오버라이드 가능한 변수
                            "$scroll_size": [ 4, "100% - 4px" ],
                            // 오버라이드 가능한 변수
                            "$scroll_bar_left_padding_size": [ 1.5, 0 ],
                            // 오버라이드 가능한 변수
                            "$scroll_bar_right_padding_size": [ 0.5, 0 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_middle",
                            // 가로/세로 크기
                            "size": [ "100% - 4px", "100% - 20px" ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 12
                          }
                        }
                      ],
                      // 입력 키/버튼과 동작 연결
                      "button_mappings": [
                        {
                          // 어떤 입력을 받을지
                          "from_button_id": "button.menu_select",
                          // 어떤 동작을 실행할지
                          "to_button_id": "button.menu_select",
                          // 입력 시점(pressed 등)
                          "mapping_type": "pressed"
                        },
                        {
                          // 어떤 입력을 받을지
                          "from_button_id": "button.menu_ok",
                          // 어떤 동작을 실행할지
                          "to_button_id": "button.menu_ok",
                          // 입력 시점(pressed 등)
                          "mapping_type": "pressed"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ],
          // 입력 키/버튼과 동작 연결
          "button_mappings": [
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_select",
              // 어떤 동작을 실행할지
              "to_button_id": "button.close_chat_settings",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_secondary_select",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_secondary_select",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_ok",
              // 어떤 동작을 실행할지
              "to_button_id": "button.close_chat_settings",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_cancel",
              // 어떤 동작을 실행할지
              "to_button_id": "button.close_chat_settings",
              // 입력 시점(pressed 등)
              "mapping_type": "global"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_up",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_up",
              // 입력 시점(pressed 등)
              "mapping_type": "global",
              // ?? ??
              "scope": "view"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_down",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_down",
              // 입력 시점(pressed 등)
              "mapping_type": "global",
              // ?? ??
              "scope": "view"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_left",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_left",
              // 입력 시점(pressed 등)
              "mapping_type": "global",
              // ?? ??
              "scope": "view"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_right",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_right",
              // 입력 시점(pressed 등)
              "mapping_type": "global",
              // ?? ??
              "scope": "view"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "maximized_input_dialog_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "modal_input_panel@rainbowpieui_chat.modal_input_panel": {
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "maximized_input_dialog@rainbowpieui_chat.maximized_input_dialog": {}
            }
          ]
        }
      }
    ],
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "maximized_input",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "modal_input_panel@common.input_panel": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 100,
    // 포커스 가능 여부
    "focus_enabled": false,
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_select",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_select",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_secondary_select",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_secondary_select",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_ok",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_ok",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_cancel",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_cancel",
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_up",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_up",
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "scope": "view"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_down",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_down",
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "scope": "view"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_left",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_left",
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "scope": "view"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_right",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_right",
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "scope": "view"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "maximized_input_dialog@rainbowpie_ui_dialog.dialog_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_title": "accessibility.chat.tts.textboxTitle",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_extra_controls": "rainbowpieui_chat.maximized_input_dialog_button",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_show_close": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialog_content": "rainbowpieui_chat.maximized_input_dialog_content",
    // 가로/세로 크기
    "size": "$extra_large_screen_size",
    // ?? ?? ?
    "max_size": "$extra_large_max_screen_size",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 110
  },

  // ???/?? ??
  "maximized_input_dialog_button": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "paste_button@chat.paste_button": {
                // 포커스 이동용 ID
                "focus_identifier": "paste_button",
                // 왼쪽으로 이동할 대상
                "focus_change_left": "FOCUS_OVERRIDE_STOP",
                // 위로 이동할 대상
                "focus_change_up": "FOCUS_OVERRIDE_STOP",
                // 아래로 이동할 대상
                "focus_change_down": "chat_multiline_text_edit_box",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_default_alpha": 0.0,
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 가로/세로 크기
                "size": [ "100%y", "100%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "autocompleteback@common_buttons.light_text_button": {
                // 위로 이동할 대상
                "focus_change_up": "FOCUS_OVERRIDE_STOP",
                // 아래로 이동할 대상
                "focus_change_down": "chat_multiline_text_edit_box",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_default_alpha": 0.0,
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                // 오버라이드 가능한 변수
                "$button_text": "TAB▲",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.chat_autocomplete_back",
                // 가로/세로 크기
                "size": [ "100%y", "100%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "autocomplete@common_buttons.light_text_button": {
                // 위로 이동할 대상
                "focus_change_up": "FOCUS_OVERRIDE_STOP",
                // 아래로 이동할 대상
                "focus_change_down": "chat_multiline_text_edit_box",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_default_alpha": 0.0,
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                // 오버라이드 가능한 변수
                "$button_text": "TAB▼",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.chat_autocomplete",
                // 가로/세로 크기
                "size": [ "100%y", "100%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "previous@common_buttons.light_text_button": {
                // 위로 이동할 대상
                "focus_change_up": "FOCUS_OVERRIDE_STOP",
                // 아래로 이동할 대상
                "focus_change_down": "chat_multiline_text_edit_box",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_default_alpha": 0.0,
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                // 오버라이드 가능한 변수
                "$button_text": "▲",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.chat_previous_message",
                // 가로/세로 크기
                "size": [ "100%y", "100%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "next@common_buttons.light_text_button": {
                // 위로 이동할 대상
                "focus_change_up": "FOCUS_OVERRIDE_STOP",
                // 아래로 이동할 대상
                "focus_change_down": "chat_multiline_text_edit_box",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_default_alpha": 0.0,
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                // 오버라이드 가능한 변수
                "$button_text": "▼",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.chat_next_message",
                // 가로/세로 크기
                "size": [ "100%y", "100%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "send@common_buttons.light_text_button": {
                // 오른쪽으로 이동할 대상
                "focus_change_right": "FOCUS_OVERRIDE_STOP",
                // 위로 이동할 대상
                "focus_change_up": "FOCUS_OVERRIDE_STOP",
                // 아래로 이동할 대상
                "focus_change_down": "chat_multiline_text_edit_box",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_default_alpha": 0.0,
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                // 오버라이드 가능한 변수
                "$button_text": "Send",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.send",
                // 가로/세로 크기
                "size": [ "120%y", "100%" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#send_button_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#enabled"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "minimized_input_button@rainbowpieui_chat.maximized_input_toggle_base": {
                // 오버라이드 가능한 변수
                "$toggle_focus_enabled": false,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_default_alpha": 0.0,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_hover_color": "$rainbowpie_ui_theme_closebutton_hover_background_color",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_hover_alpha": "$rainbowpie_ui_theme_closebutton_hover_background_alpha",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_pressed_color": "$rainbowpie_ui_theme_closebutton_pressed_background_color",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_pressed_alpha": "$rainbowpie_ui_theme_closebutton_pressed_background_alpha",
                // 오버라이드 가능한 변수
                "$button_content": "rainbowpieui_chat.close_button_icon",
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 가로/세로 크기
                "size": [ "100%y", "100%" ],
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": 1001,
                // 오버라이드 가능한 변수
                "$toggle_view_binding_name": "minimized_input",
                // 오버라이드 가능한 변수
                "$button_mappings": [
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_select",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_ok",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_cancel",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "maximized_input_dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "chat_multiline_text_edit_box@rainbowpieui_chat.chat_multiline_text_edit_box": {}
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "chat_multiline_text_edit_box@common.multiline_text_edit_box": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_editbox_enabled": true,
    // 오버라이드 가능한 변수
    "$edit_box_indent_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$focus_id": "chat_multiline_text_edit_box",
    // 오버라이드 가능한 변수
    "$focus_override_down": "FOCUS_OVERRIDE_STOP",
    // 오버라이드 가능한 변수
    "$focus_override_up": "paste_button",
    // 오버라이드 가능한 변수
    "$focus_override_left": "FOCUS_OVERRIDE_STOP",
    // 오버라이드 가능한 변수
    "$focus_override_right": "FOCUS_OVERRIDE_STOP",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [ "100% - 4px", "100% - 4px" ],
    // ?? ?? ?
    "max_length": 32500,
    // 오버라이드 가능한 변수
    "$text_box_name": "#message_text_box",
    // 오버라이드 가능한 변수
    "$text_edit_box_content_binding_name": "#message_text_box_content",
    // 오버라이드 가능한 변수
    "$place_holder_text": "Enter your content here...",
    // 오버라이드 가능한 변수
    "$enable_profanity_filter": "$rainbowpie_ui_flag_input_enable_profanity_filter",
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      // Original Mappings - defined in common.multiline_text_edit_box //
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_select",
        // 어떤 동작을 실행할지
        "to_button_id": "$text_edit_box_selected_to_button_id",
        // ?? ??
        "handle_select": true,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_select",
        // 어떤 동작을 실행할지
        "to_button_id": "$text_edit_box_selected_to_button_id",
        // ?? ??
        "handle_select": false,
        // ?? ??
        "handle_deselect": true,
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "consume_event": false
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_ok",
        // 어떤 동작을 실행할지
        "to_button_id": "$text_edit_box_selected_to_button_id",
        // ?? ??
        "handle_select": true,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_cancel",
        // 어떤 동작을 실행할지
        "to_button_id": "$text_edit_box_deselected_to_button_id",
        // ?? ??
        "handle_select": false,
        // ?? ??
        "handle_deselect": true,
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      },
      {
        // 어떤 동작을 실행할지
        "to_button_id": "$text_edit_box_hovered_button_id",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "$text_edit_box_clear_from_button_id",
        // 어떤 동작을 실행할지
        "to_button_id": "$text_edit_box_clear_to_button_id",
        // ?? ??
        "handle_select": false,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "focused"
      },

      // Extra Mappings //
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_autocomplete",
        // 어떤 동작을 실행할지
        "to_button_id": "button.chat_autocomplete",
        // ?? ??
        "handle_select": true,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_autocomplete_back",
        // 어떤 동작을 실행할지
        "to_button_id": "button.chat_autocomplete_back",
        // ?? ??
        "handle_select": true,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_textedit_up",
        // 어떤 동작을 실행할지
        "to_button_id": "button.chat_previous_message",
        // ?? ??
        "handle_select": true,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "focused"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_textedit_down",
        // 어떤 동작을 실행할지
        "to_button_id": "button.chat_next_message",
        // ?? ??
        "handle_select": true,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "focused"
      },

      // Controller Mappings //
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.controller_autocomplete",
        // 어떤 동작을 실행할지
        "to_button_id": "button.chat_autocomplete",
        // ?? ??
        "handle_select": false,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.controller_autocomplete_back",
        // 어떤 동작을 실행할지
        "to_button_id": "button.chat_autocomplete_back",
        // ?? ??
        "handle_select": false,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.controller_textedit_up",
        // 어떤 동작을 실행할지
        "to_button_id": "button.chat_previous_message",
        // ?? ??
        "handle_select": false,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "focused"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.controller_textedit_down",
        // 어떤 동작을 실행할지
        "to_button_id": "button.chat_next_message",
        // ?? ??
        "handle_select": false,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "focused"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.controller_secondary_select",
        // 어떤 동작을 실행할지
        "to_button_id": "button.chat_paste_coordinates",
        // ?? ??
        "handle_select": true,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      }
    ]
  },

  // ???/?? ??
  "close_button_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/global/close_button/close')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_localui_button_text_color"
  },

  // ???/?? ??
  "maximize_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 18, 18 ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/chat/chat_maximize')"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "maximized_input_toggle_base@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_chat.maximize_icon",

    // 오버라이드 가능한 변수
    "$button_type_panel": "common_buttons.new_ui_binding_button_label",
    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_chat_maximized_input",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 1001,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  },

  // ???/?? ??
  "chat_bottom_panel_back_animation": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 20 ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "chat_bottom_panel_back_animation_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 20 ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "chat_bottom_panel_animation": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 20 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "chat_bottom_panel_animation_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 20 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  //

  "chat_bottom_background_back_animation1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 27px" ],
    // 끝 값
    "to": [ 0, "100% - 7px" ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "chat_bottom_background_back_animation2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 27px" ],
    // 끝 값
    "to": [ 0, "-100% + 7px" ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "chat_bottom_background_back_animation_pop1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 27px" ],
    // 끝 값
    "to": [ 0, "100% - 7px" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "chat_bottom_background_back_animation_pop2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 27px" ],
    // 끝 값
    "to": [ 0, "-100% + 7px" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "chat_bottom_background_animation1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 7px" ],
    // 끝 값
    "to": [ 0, "100% - 27px" ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "chat_bottom_background_animation2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 7px" ],
    // 끝 값
    "to": [ 0, "-100% + 27px" ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "chat_bottom_background_animation_pop1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 7px" ],
    // 끝 값
    "to": [ 0, "100% - 27px" ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "chat_bottom_background_animation_pop2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 7px" ],
    // 끝 값
    "to": [ 0, "-100% + 27px" ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "top_tab@common_tabs.tab_top": {
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$toggle_tts_enabled_binding_type": "global",
    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpieui_navigation_tab",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 10,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 오버라이드 가능한 변수
    "$toggle_tts_type_priority": 1001,
    // 오버라이드 가능한 변수
    "$toggle_tts_toggle_on_text": "",
    // 오버라이드 가능한 변수
    "$toggle_tts_toggle_off_text": "",
    // 오버라이드 가능한 변수
    "$toggle_tts_index_priority": 1002,
    // 오버라이드 가능한 변수
    "$tab_content": "rainbowpieui_chat.top_tab_content"
  },

  // ???/?? ??
  "top_tab_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "tab_label@rainbowpie_ui_common.text_label_notheme": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 가로/세로 크기
          "size": [ "default", "default" ],
          // ?? ??
          "text_alignment": "center",
          // 보여줄 글자
          "text": "$tab_text",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "second_chat_toggle_base@common_toggles.light_ui_toggle": {

    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_button_checked_locked_hover",

    // 오버라이드 가능한 변수
    "$button_type_panel": "common_buttons.new_ui_binding_button_label",
    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_chat_messages_and_playerlist",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 1000,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 1000,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "second_message_panel@rainbowpieui_chat.editable_message_text": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": []
  },

  // ???/?? ??
  "messages_stack_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 오버라이드 가능한 변수
    "$scrolling_content_anchor_from": "bottom_left",
    // 오버라이드 가능한 변수
    "$scrolling_content_anchor_to": "bottom_left",
    // 목록 아이템을 자동으로 생성
    "factory": {
      // ?? ??
      "name": "messages_factory",
      // ?? ?? ?
      "max_children_size": 100,
      // 팩토리 템플릿 매핑
      "control_ids": {
        // ?? ??
        "chat_screen_messages": "chat_screen_messages@rainbowpieui_chat.second_message_panel"
      }
    }
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "messages_scrolling_panel@common.scrolling_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100% - 2px", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scrolling_content": "rainbowpieui_chat.messages_stack_panel",
    // 오버라이드 가능한 변수
    "$scroll_size": [ 5, "100%-4px" ],
    // 오버라이드 가능한 변수
    "$scroll_bar_right_padding_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_left_padding_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$jump_to_bottom_on_update": true,
    // 오버라이드 가능한 변수
    "$show_background": false,
    // 오버라이드 가능한 변수
    "$always_handle_scrolling": false
  },

  // ???/?? ??
  "player_grid_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 29 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "sub_command_button@common_buttons.light_content_button": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 가로/세로 크기
          "size": [ "100%", "100% - 1px" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_button_default_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.sub_command",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#host_teleport_players_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            },
            {
              // 가져올 값 이름
              "binding_name": "#gamertag",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "players_collection",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#sub_command"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@rainbowpie_ui_common.text_background": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 가로/세로 크기
          "size": [ "100%", "100% - 1px" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "player_image": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "#texture",
                // 가로/세로 크기
                "size": [ 26, 26 ],
                // 기준점에서 이동하는 거리
                "offset": [ 1, 0 ],
                // ??? ?? ???
                "texture_file_system": "#texture_source",
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#texture",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#texture_source",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "#texture_source",
                    // 결과가 들어갈 속성
                    "target_property_name": "#texture_file_system"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (#texture_source = 'RawPath'))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#is_local_picture"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (#is_local_picture)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "player_image_local": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/icon_steve",
                // 가로/세로 크기
                "size": [ 26, 26 ],
                // 기준점에서 이동하는 거리
                "offset": [ 1, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#texture_source",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (#texture_source = 'RawPath'))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#is_local_picture"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "#is_local_picture",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "player_name@rainbowpie_ui_common.title_label": {
                // ?? ?? ??
                "font_scale_factor": 1.4,
                // ?? ??
                "text_alignment": "left",
                // 보여줄 글자
                "text": "#gamertag",
                // 가로/세로 크기
                "size": [ "100% - 32px", "default" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 기준점에서 이동하는 거리
                "offset": [ 30, 0 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#gamertag",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "playerlist_grid": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ "100%", "default" ],
    // ??? ?? ?
    "grid_item_template": "rainbowpieui_chat.player_grid_item",
    // ??? ?? ?
    "grid_dimension_binding": "#players_grid_dimension",
    // 목록 이름
    "collection_name": "players_collection",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#players_grid_dimension"
      }
    ]
  },

  // ???/?? ??
  "playerlist_scrolling_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "playerlist_grid@rainbowpieui_chat.playerlist_grid": {}
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "playerlist_scrolling_panel@common.scrolling_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100% - 2px", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scrolling_content": "rainbowpieui_chat.playerlist_scrolling_content",
    // 오버라이드 가능한 변수
    "$scroll_size": [ 5, "100%-4px" ],
    // 오버라이드 가능한 변수
    "$scroll_bar_right_padding_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_left_padding_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$jump_to_bottom_on_update": false,
    // 오버라이드 가능한 변수
    "$show_background": false,
    // 오버라이드 가능한 변수
    "$always_handle_scrolling": false
  },

  // ???/?? ??
  "chat_messages_and_playerlist_panel_hidden": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_82f66bc6",
    // 위치 이동
    "anim_type": "offset",
    // 걸리는 시간(초)
    "duration": 0,
    // 끝 값
    "to": [ "200%", 20 ],
    // 시작 값
    "from": [ "200%", 20 ],
    // ?? ??
    "play_event": "button.open_chat_settings"
  },

  // ???/?? ??
  "chat_messages_and_playerlist_panel_shown": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_82f66bc6",
    // 위치 이동
    "anim_type": "offset",
    // 걸리는 시간(초)
    "duration": 0,
    // 끝 값
    "to": [ 0, 20 ],
    // 시작 값
    "from": [ 0, 20 ]
  },

  // ???/?? ??
  "chat_messages_and_playerlist_panel_hidden2": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_82f66bc6)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 끝 값
    "to": [ -150, 20 ],
    // 시작 값
    "from": [ 0, 20 ],
    // ?? ??
    "play_event": "button.open_chat_settings"
  },

  // ???/?? ??
  "chat_messages_and_playerlist_panel_shown2": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_82f66bc6)",
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 끝 값
    "to": [ 0, 20 ],
    // 시작 값
    "from": [ -150, 20 ]
  },


  // ???/?? ??
  "chat_messages_and_playerlist": {
    // 완전히 제거(공간도 없음)
    "ignored": "($game_pad or (not $rainbowpie_ui_feature_command_chat))",
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 가로/세로 크기
    "size": [ 170, "100% - 47px" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 20 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 150,
    // ????? ?? ?
    "animation_reset_name": "button.close_chat_settings",
    // 애니메이션 목록
    "anims": [
      "@rainbowpieui_chat.chat_messages_and_playerlist_panel_shown2",
      "@rainbowpieui_chat.chat_messages_and_playerlist_panel_hidden2",
      "@rainbowpieui_chat.chat_messages_and_playerlist_panel_shown",
      "@rainbowpieui_chat.chat_messages_and_playerlist_panel_hidden"
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 가로/세로 크기
          "size": [ 150, "100%" ],
          // ?? ????
          "clips_children": true,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "padding_close": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "close_second_chat",
                    // 계산식/참조 값
                    "source_property_name": "#toggle_state",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "background_content": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_dialog_content_background_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "stack_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "playerlist_scrolling_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 12,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "playerlist_scrolling@rainbowpieui_chat.playerlist_scrolling_panel": {
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 1
                                }
                              }
                            ],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#chat_visible",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "tab_panel_with_content_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "tab_panel": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_middle",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_middle",
                                  // 가로/세로 크기
                                  "size": [ "100%", 22 ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "chat_navigation_tab@rainbowpieui_chat.top_tab": {
                                        // 가로/세로 크기
                                        "size": [ "fill", "100%" ],
                                        // 오버라이드 가능한 변수
                                        "$tab_view_binding_name": "chat_navigation_tab_toggle",
                                        // 오버라이드 가능한 변수
                                        "$tab_text": "rainbowpie.ui.chat.tab.chat",
                                        // 오버라이드 가능한 변수
                                        "$toggle_group_forced_index": 10,
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 가져올 값 이름
                                            "binding_name": "#chat_visible"
                                          },
                                          {
                                            // 계산/조건 결과를 연결
                                            "binding_type": "view",
                                            // ?? ??
                                            "source_control_name": "open_second_chat",
                                            // 계산식/참조 값
                                            "source_property_name": "#toggle_state",
                                            // 결과가 들어갈 속성
                                            "target_property_name": "#second_chat_opened"
                                          },
                                          {
                                            // 계산/조건 결과를 연결
                                            "binding_type": "view",
                                            // 계산식/참조 값
                                            "source_property_name": "((not #chat_visible) and #second_chat_opened)",
                                            // 결과가 들어갈 속성
                                            "target_property_name": "#enabled"
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "playerlist_navigation_tab@rainbowpieui_chat.top_tab": {
                                        // 가로/세로 크기
                                        "size": [ "fill", "100%" ],
                                        // 오버라이드 가능한 변수
                                        "$tab_view_binding_name": "playerlist_navigation_tab_toggle",
                                        // 오버라이드 가능한 변수
                                        "$tab_text": "rainbowpie.ui.chat.tab.playerlist",
                                        // 오버라이드 가능한 변수
                                        "$toggle_group_forced_index": 11,
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 가져올 값 이름
                                            "binding_name": "#chat_visible"
                                          },
                                          {
                                            // 계산/조건 결과를 연결
                                            "binding_type": "view",
                                            // ?? ??
                                            "source_control_name": "open_second_chat",
                                            // 계산식/참조 값
                                            "source_property_name": "#toggle_state",
                                            // 결과가 들어갈 속성
                                            "target_property_name": "#second_chat_opened"
                                          },
                                          {
                                            // 계산/조건 결과를 연결
                                            "binding_type": "view",
                                            // 계산식/참조 값
                                            "source_property_name": "((not #chat_visible) and #second_chat_opened)",
                                            // 결과가 들어갈 속성
                                            "target_property_name": "#enabled"
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "content_panel": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "bottom_middle",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "bottom_middle",
                                  // 가로/세로 크기
                                  "size": [ "100%", "100% - 22px" ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // ???/?? ??
                                      "playerlist_scrolling_panel": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ "100%", "100%" ],
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": 12,
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "playerlist_scrolling@rainbowpieui_chat.playerlist_scrolling_panel": {
                                              // 겹치는 순서(숫자 클수록 위)
                                              "layer": 1
                                            }
                                          }
                                        ],
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 계산/조건 결과를 연결
                                            "binding_type": "view",
                                            // ?? ??
                                            "source_control_name": "playerlist_navigation_tab_toggle",
                                            // 계산식/참조 값
                                            "source_property_name": "#toggle_state",
                                            // 결과가 들어갈 속성
                                            "target_property_name": "#visible"
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      // ???/?? ??
                                      "messages_scrolling_panel": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ "100%", "100%" ],
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": 12,
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "messages_scrolling@rainbowpieui_chat.messages_scrolling_panel": {
                                              // 겹치는 순서(숫자 클수록 위)
                                              "layer": 1
                                            }
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "open_second_chat_button@rainbowpieui_chat.second_chat_toggle_base": {
          // 가로/세로 크기
          "size": [ 20, 25 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 20,
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 오버라이드 가능한 변수
          "$button_text": "<",
          // 오버라이드 가능한 변수
          "$toggle_group_forced_index": 1000,
          // 오버라이드 가능한 변수
          "$toggle_view_binding_name": "open_second_chat",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "open_second_chat",
              // 계산식/참조 값
              "source_property_name": "(not #toggle_state)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "close_second_chat_button@rainbowpieui_chat.second_chat_toggle_base": {
          // 가로/세로 크기
          "size": [ 20, 25 ],
          // 기준점에서 이동하는 거리
          "offset": [ -150, 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 20,
          // 오버라이드 가능한 변수
          "$button_text": ">",
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 오버라이드 가능한 변수
          "$toggle_group_forced_index": 1001,
          // 오버라이드 가능한 변수
          "$toggle_view_binding_name": "close_second_chat",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "open_second_chat",
              // 계산식/참조 값
              "source_property_name": "(#toggle_state)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "chat_header": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "header@rainbowpie_ui_common.screen_header": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_ingame_anim1": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_title": "#back_button_text",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_title_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#back_button_text"
            }
          ],
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_content_panel": "rainbowpieui_chat.chat_header_content"
        }
      }
    ]
  },

  // ???/?? ??
  "chat_header_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_panel@rainbowpie_ui_common.text_label_notheme": {
          // 가로/세로 크기
          "size": [ "default", 10 ],
          // 보여줄 글자
          "text": "#text",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // ?? (R,G,B,A)
          "color": "$rainbowpie_ui_theme_topbar_text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#chat_title_text",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#text"
            },
            {
              // 가져올 값 이름
              "binding_name": "#chat_title_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "chat_header_content_area@rainbowpieui_chat.chat_header_content_area": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#chat_coordinate_dropdown_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "chat_header_content_area": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100%c", 18 ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 1 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "coordinate_dropdown@chat.coordinate_dropdown": {
          // 가로/세로 크기
          "size": [ 100, 18 ],
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dropdown_show_button": false,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dropdown_offset": [ 0, 2 ],
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dropdown_size": [ "100%", 18 ],
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dropdown_enabled": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dropdown_content": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
                // 오버라이드 가능한 변수
                "$toggle_state_binding_name": "#coordinate_type_position",
                // 오버라이드 가능한 변수
                "$radio_label_text": "chat.coordinateTypePosition"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
                // 오버라이드 가능한 변수
                "$toggle_state_binding_name": "#coordinate_type_facing",
                // 오버라이드 가능한 변수
                "$radio_label_text": "chat.coordinateTypeFacing"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "coordinates_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c + 2px", 18 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "coordinates_background_image": {
                // 이미지 표시
                "type": "image",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 가로/세로 크기
                "size": [ "100%c + 14px", 18 ],
                // ?? ?? ?
                "min_size": [ 160, 18 ],
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_title_background_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_title_background_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "coordinates_text@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // 보여줄 글자
                      "text": "#text",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_title_text_color",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#coordinates_text",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#text"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "copy_coordinate_button@chat.copy_coordinate_button": {
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 가로/세로 크기
          "size": [ 18, 18 ]
        }
      },
      {
        // ???/?? ??
        "button_padding_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "paste_button@chat.paste_button": {
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 가로/세로 크기
          "size": [ 18, 18 ]
        }
      }
    ]
  },

  // ???/?? ??
  "chat_message_panel_animation": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_cubic",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_chat_transition_time",
    // 시작 값
    "from": [ "-1%", 0 ],
    // 끝 값
    "to": [ 0, 0 ]
  },

  // ???/?? ??
  "chat_message_panel_size_animation": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "out_cubic",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_chat_transition_time",
    // 시작 값
    "from": [ "100%", 0 ],
    // 끝 값
    "to": [ "100%", "100%c" ]
  }
}

chest_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: chest_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_chest",

  // 다른 템플릿을 가져와서 확장(상속)
  "large_chest_root_panel@common.root_panel": {
    // 가로/세로 크기
    "size": [ 168, 215 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "inventory_selected_icon_button@common.inventory_selected_icon_button": {} },
      { "gamepad_cursor@common.gamepad_cursor_button": {} },
      { "inventory_take_progress_icon_button@common.inventory_take_progress_icon_button": {} },
      {
        // ???/?? ??
        "inventory_ui_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 애니메이션 목록
          "anims": [
            "@rainbowpie_ui_animations.container_panel_exit_animation_push",
            "@rainbowpie_ui_animations.container_panel_exit_animation_pop",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_push",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_pop"
          ],
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "chest_background_icon@rainbowpie_ui_inventory.background_icon": {
                // 가로/세로 크기
                "size": "$rainbowpie_ui_theme_inventory_bgicon_chestlarge_size",
                // 기준점에서 이동하는 거리
                "offset": "$rainbowpie_ui_theme_inventory_bgicon_chestlarge_offset",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$rainbowpie_ui_theme_inventory_bgicon_chestlarge_anchor",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$rainbowpie_ui_theme_inventory_bgicon_chestlarge_anchor",
                // 사용할 이미지 경로
                "texture": "$rainbowpie_ui_theme_inventory_bgicon_chestlarge_texture",
                // ???
                "alpha": "$rainbowpie_ui_theme_inventory_bgicon_chestlarge_alpha",
                // ?? ??
                "fill": "$rainbowpie_ui_theme_inventory_bgicon_chestlarge_fill"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background_icon@rainbowpie_ui_inventory.background_icon": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "live_player_renderer@rainbowpie_ui_inventory.live_player_renderer": {
                // 기준점에서 이동하는 거리
                "offset": [ "-100%x - 2.380952380952381%", -16 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "chest_fastpick@rainbowpie_module_chest_fastpick.chest_fastpick": {
                // 오버라이드 가능한 변수
                "$large_chest": true,
                // 오버라이드 가능한 변수
                "$drop_button_size": [ "100%y", "10.23255813953488%" ],
                // 오버라이드 가능한 변수
                "$drop_button_offset": [ "100%x + 1.19047619047619%", "-36.27906976744186%" ],
                // 오버라이드 가능한 변수
                "$putin_button_size": [ "100%y", "10.23255813953488%" ],
                // 오버라이드 가능한 변수
                "$putin_button_offset": [ "100%x + 1.19047619047619%", "-11.16279069767442%" ],
                // 오버라이드 가능한 변수
                "$pickup_button_size": [ "100%y", "10.23255813953488%" ],
                // 오버라이드 가능한 변수
                "$pickup_button_offset": [ "100%x + 1.19047619047619%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory_header@rainbowpie_ui_inventory.header": {
                // 가로/세로 크기
                "size": [ "100%", "10.69767441860465%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title": "$container_title",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border1_size": [ "2.380952380952381%", 0 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border2_size": [ "2.380952380952381%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "common_panel@common.common_panel": {
                // 오버라이드 가능한 변수
                "$dialog_background": "rainbowpie_ui_common.inventory_background",
                // 오버라이드 가능한 변수
                "$show_close_button": false,
                // 가로/세로 크기
                "size": [ "100%", "100% - 10.69767441860465%" ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle"
              }
            },
            {
              // ???/?? ??
              "chest": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "50.23255813953488%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-37.67441860465116%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "1@rainbowpie_ui_inventory_and_container.container_item_stack": {
                      // 가로/세로 크기
                      "size": [ "100%", "16.66666666666667%" ],
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "container_items",
                      // 오버라이드 가능한 변수
                      "$collection_index_start": 0
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "2@rainbowpie_ui_inventory_and_container.container_item_stack": {
                      // 가로/세로 크기
                      "size": [ "100%", "16.66666666666667%" ],
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "container_items",
                      // 오버라이드 가능한 변수
                      "$collection_index_start": 9
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "3@rainbowpie_ui_inventory_and_container.container_item_stack": {
                      // 가로/세로 크기
                      "size": [ "100%", "16.66666666666667%" ],
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "container_items",
                      // 오버라이드 가능한 변수
                      "$collection_index_start": 18
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "4@rainbowpie_ui_inventory_and_container.container_item_stack": {
                      // 가로/세로 크기
                      "size": [ "100%", "16.66666666666667%" ],
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "container_items",
                      // 오버라이드 가능한 변수
                      "$collection_index_start": 27
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "5@rainbowpie_ui_inventory_and_container.container_item_stack": {
                      // 가로/세로 크기
                      "size": [ "100%", "16.66666666666667%" ],
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "container_items",
                      // 오버라이드 가능한 변수
                      "$collection_index_start": 36
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "6@rainbowpie_ui_inventory_and_container.container_item_stack": {
                      // 가로/세로 크기
                      "size": [ "100%", "16.66666666666667%" ],
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "container_items",
                      // 오버라이드 가능한 변수
                      "$collection_index_start": 45
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory@rainbowpie_ui_inventory_and_container.inventory_panel_bottom_half": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "25.11627906976744%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-11.16279069767442%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar@rainbowpie_ui_inventory_and_container.hotbar_grid_template": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "8.372093023255814%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-1.395348837209302%" ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "small_chest_root_panel@common.root_panel": {
    // 가로/세로 크기
    "size": [ 168, 161 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "inventory_selected_icon_button@common.inventory_selected_icon_button": {} },
      { "gamepad_cursor@common.gamepad_cursor_button": {} },
      { "inventory_take_progress_icon_button@common.inventory_take_progress_icon_button": {} },
      {
        // ???/?? ??
        "inventory_ui_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 애니메이션 목록
          "anims": [
            "@rainbowpie_ui_animations.container_panel_exit_animation_push",
            "@rainbowpie_ui_animations.container_panel_exit_animation_pop",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_push",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_pop"
          ],
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "chest_background_icon@rainbowpie_ui_inventory.background_icon": {
                // 가로/세로 크기
                "size": "$size",
                // 기준점에서 이동하는 거리
                "offset": "$offset",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$anchor_to",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$anchor_from",
                // 사용할 이미지 경로
                "texture": "$texture",
                // ???
                "alpha": "$alpha",
                // ?? ??
                "fill": "$fill",

                // 오버라이드 가능한 변수
                "$size": "$rainbowpie_ui_theme_inventory_bgicon_chest_size",
                // 오버라이드 가능한 변수
                "$offset": "$rainbowpie_ui_theme_inventory_bgicon_chest_offset",
                // 오버라이드 가능한 변수
                "$anchor_to": "$rainbowpie_ui_theme_inventory_bgicon_chest_anchor",
                // 오버라이드 가능한 변수
                "$anchor_from": "$rainbowpie_ui_theme_inventory_bgicon_chest_anchor",
                // 오버라이드 가능한 변수
                "$texture": "$rainbowpie_ui_theme_inventory_bgicon_chest_texture",
                // 오버라이드 가능한 변수
                "$alpha": "$rainbowpie_ui_theme_inventory_bgicon_chest_alpha",
                // 오버라이드 가능한 변수
                "$fill": "$rainbowpie_ui_theme_inventory_bgicon_chest_fill",
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$is_ender_chest",
                    // 오버라이드 가능한 변수
                    "$size": "$rainbowpie_ui_theme_inventory_bgicon_chestender_size",
                    // 오버라이드 가능한 변수
                    "$offset": "$rainbowpie_ui_theme_inventory_bgicon_chestender_offset",
                    // 오버라이드 가능한 변수
                    "$anchor_to": "$rainbowpie_ui_theme_inventory_bgicon_chestender_anchor",
                    // 오버라이드 가능한 변수
                    "$anchor_from": "$rainbowpie_ui_theme_inventory_bgicon_chestender_anchor",
                    // 오버라이드 가능한 변수
                    "$texture": "$rainbowpie_ui_theme_inventory_bgicon_chestender_texture",
                    // 오버라이드 가능한 변수
                    "$alpha": "$rainbowpie_ui_theme_inventory_bgicon_chestender_alpha",
                    // 오버라이드 가능한 변수
                    "$fill": "$rainbowpie_ui_theme_inventory_bgicon_chestender_fill"
                  },
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$is_shulker_box",
                    // 오버라이드 가능한 변수
                    "$size": "$rainbowpie_ui_theme_inventory_bgicon_chestshulkerbox_size",
                    // 오버라이드 가능한 변수
                    "$offset": "$rainbowpie_ui_theme_inventory_bgicon_chestshulkerbox_offset",
                    // 오버라이드 가능한 변수
                    "$anchor_to": "$rainbowpie_ui_theme_inventory_bgicon_chestshulkerbox_anchor",
                    // 오버라이드 가능한 변수
                    "$anchor_from": "$rainbowpie_ui_theme_inventory_bgicon_chestshulkerbox_anchor",
                    // 오버라이드 가능한 변수
                    "$texture": "$rainbowpie_ui_theme_inventory_bgicon_chestshulkerbox_texture",
                    // 오버라이드 가능한 변수
                    "$alpha": "$rainbowpie_ui_theme_inventory_bgicon_chestshulkerbox_alpha",
                    // 오버라이드 가능한 변수
                    "$fill": "$rainbowpie_ui_theme_inventory_bgicon_chestshulkerbox_fill"
                  },
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$is_barrel",
                    // 오버라이드 가능한 변수
                    "$size": "$rainbowpie_ui_theme_inventory_bgicon_chestbarrel_size",
                    // 오버라이드 가능한 변수
                    "$offset": "$rainbowpie_ui_theme_inventory_bgicon_chestbarrel_offset",
                    // 오버라이드 가능한 변수
                    "$anchor_to": "$rainbowpie_ui_theme_inventory_bgicon_chestbarrel_anchor",
                    // 오버라이드 가능한 변수
                    "$anchor_from": "$rainbowpie_ui_theme_inventory_bgicon_chestbarrel_anchor",
                    // 오버라이드 가능한 변수
                    "$texture": "$rainbowpie_ui_theme_inventory_bgicon_chestbarrel_texture",
                    // 오버라이드 가능한 변수
                    "$alpha": "$rainbowpie_ui_theme_inventory_bgicon_chestbarrel_alpha",
                    // 오버라이드 가능한 변수
                    "$fill": "$rainbowpie_ui_theme_inventory_bgicon_chestbarrel_fill"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background_icon@rainbowpie_ui_inventory.background_icon": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "live_player_renderer@rainbowpie_ui_inventory.live_player_renderer": {
                // 기준점에서 이동하는 거리
                "offset": [ "-100%x - 2.380952380952381%", -16 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "chest_fastpick@rainbowpie_module_chest_fastpick.chest_fastpick": {
                // 오버라이드 가능한 변수
                "$drop_button_size": [ "100%y", "13.66459627329193%" ],
                // 오버라이드 가능한 변수
                "$drop_button_offset": [ "100%x + 1.19047619047619%", "-48.4472049689441%" ],
                // 오버라이드 가능한 변수
                "$putin_button_size": [ "100%y", "13.66459627329193%" ],
                // 오버라이드 가능한 변수
                "$putin_button_offset": [ "100%x + 1.19047619047619%", "-14.90683229813665%" ],
                // 오버라이드 가능한 변수
                "$pickup_button_size": [ "100%y", "13.66459627329193%" ],
                // 오버라이드 가능한 변수
                "$pickup_button_offset": [ "100%x + 1.19047619047619%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory_header@rainbowpie_ui_inventory.header": {
                // 가로/세로 크기
                "size": [ "100%", "14.28571428571429%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title": "$container_title",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border1_size": [ "2.380952380952381%", 0 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border2_size": [ "2.380952380952381%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "common_panel@common.common_panel": {
                // 오버라이드 가능한 변수
                "$dialog_background": "rainbowpie_ui_common.inventory_background",
                // 오버라이드 가능한 변수
                "$show_close_button": false,
                // 가로/세로 크기
                "size": [ "100%", "100% - 14.28571428571429%" ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle"
              }
            },
            {
              // ???/?? ??
              "chest": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "33.54037267080745%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-50.31055900621118%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "1@rainbowpie_ui_inventory_and_container.container_item_stack": {
                      // 가로/세로 크기
                      "size": [ "100%", "33.33333333333333%" ],
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "container_items",
                      // 오버라이드 가능한 변수
                      "$collection_index_start": 0
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "2@rainbowpie_ui_inventory_and_container.container_item_stack": {
                      // 가로/세로 크기
                      "size": [ "100%", "33.33333333333333%" ],
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "container_items",
                      // 오버라이드 가능한 변수
                      "$collection_index_start": 9
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "3@rainbowpie_ui_inventory_and_container.container_item_stack": {
                      // 가로/세로 크기
                      "size": [ "100%", "33.33333333333333%" ],
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "container_items",
                      // 오버라이드 가능한 변수
                      "$collection_index_start": 18
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory@rainbowpie_ui_inventory_and_container.inventory_panel_bottom_half": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "33.54037267080745%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-14.90683229813665%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar@rainbowpie_ui_inventory_and_container.hotbar_grid_template": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "11.18012422360248%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-1.863354037267081%" ]
              }
            }
          ]
        }
      }
    ]
  }
}

command_block_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: command_block_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_command_block",

  // ???/?? ??
  "command_block_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_editbox_enabled": true,

    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_ingame_anim1": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title": "commandBlock.genericName",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialog_content": "rainbowpieui_command_block.command_block_dialog_content",
                // 가로/세로 크기
                "size": "$extra_large_screen_size",
                // ?? ?? ?
                "max_size": "$extra_large_max_screen_size",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "(not #maximized_input_visible)",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "maximized_input_dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title": "advMode.command",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_extra_controls": "rainbowpieui_command_block.maximized_input_dialog_button",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialog_content": "rainbowpieui_command_block.maximized_input_dialog_content",
                // 오버라이드 가능한 변수
                "$close_button_to_button_id": "command_block.input_minimize",
                // 가로/세로 크기
                "size": "$extra_large_screen_size",
                // ?? ?? ?
                "max_size": "$extra_large_max_screen_size",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#maximized_input_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "maximized_input_dialog_button": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "maximized_input_close_button": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "paste_button_rainbowpie@rainbowpieui_command_block.paste_button": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_default_alpha": 0,
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 가로/세로 크기
                "size": [ "100%y", "100%" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "autocompleteback@common_buttons.light_text_button": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_default_alpha": 0.0,
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                // 오버라이드 가능한 변수
                "$button_text": "TAB▲",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.chat_autocomplete_back",
                // 가로/세로 크기
                "size": [ "100%y", "100%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "autocomplete@common_buttons.light_text_button": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_default_alpha": 0.0,
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                // 오버라이드 가능한 변수
                "$button_text": "TAB▼",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.chat_autocomplete",
                // 가로/세로 크기
                "size": [ "100%y", "100%" ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "maximized_input_dialog_content": {
    // 마우스/커서 따라다니는 패널
    "type": "input_panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "maximized_command_block_text@command_block.command_block_multiline_text_edit_box": {
          // 오버라이드 가능한 변수
          "$edit_box_indent_size": [ "100%", "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 17,
          // 가로/세로 크기
          "size": [ "100% - 4px", "100% - 4px" ],
          // ?? ?? ?
          "max_length": 32500,
          // 오버라이드 가능한 변수
          "$text_box_name": "command_block.command_text",
          // 오버라이드 가능한 변수
          "$text_edit_box_content_binding_name": "#command_text_edit",
          // 오버라이드 가능한 변수
          "$place_holder_text": "Enter your command input here",
          // 오버라이드 가능한 변수
          "$cancel_button_id": "command_block.input_minimize",
          // 오버라이드 가능한 변수
          "$enable_profanity_filter": "$rainbowpie_ui_flag_input_enable_profanity_filter"
        }
      }
    ],
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_cancel",
        // 어떤 동작을 실행할지
        "to_button_id": "command_block.input_minimize",
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      }
    ]
  },

  // ???/?? ??
  "command_block_dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "left_side@command_block.left_divider_content": {
          // 가로/세로 크기
          "size": [ "40%", "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "right_side@command_block.right_divider_content": {
          // 가로/세로 크기
          "size": [ "60%", "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle"
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "plus_button@common_buttons.light_content_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100% - 1px", "100% - 2px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // 가로/세로 크기
    "size": [ 29, 30 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 오버라이드 가능한 변수
    "$button_content": "command_block.plus_icon",
    // 오버라이드 가능한 변수
    "$pressed_button_name": "command_block.input_maximize",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "(not #maximized_input_visible)",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#enabled"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "paste_button@common_buttons.light_content_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100% - 1px", "100% - 2px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // 가로/세로 크기
    "size": [ 29, 30 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 오버라이드 가능한 변수
    "$button_content": "command_block.paste_icon",
    // 오버라이드 가능한 변수
    "$pressed_button_name": "command_block.paste"
  }
}

content_log_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: content_log_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_content_log",

  // ???/?? ??
  "anim_content_log_offset": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_cubic",
    // 걸리는 시간(초)
    "duration": 0.8,
    // 시작 값
    "from": [ 0, "-100%" ],
    // 끝 값
    "to": [ 0, 0 ],
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_content_log.anim_content_log_wait"
  },

  // ???/?? ??
  "anim_content_log_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": "($content_log_item_lifetime - 0.5)",
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_content_log.anim_content_log_offset_back"
  },

  // ???/?? ??
  "anim_content_log_offset_back": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_cubic",
    // 걸리는 시간(초)
    "duration": 0.8,
    // 끝 값
    "to": [ 0, "-100%" ],
    // 시작 값
    "from": [ 0, 0 ],
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_content_log.anim_content_log_wait"
  }
}

content_log_history_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: content_log_history_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_content_log_history",

  // ???/?? ??
  "content_log_history_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "header@rainbowpie_ui_common.screen_header": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_title": "contentlog.history.title"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "blur_layer@mintui_background.background_blur": {
          // 오버라이드 가능한 변수
          "$background_offset": [ 0, "100% - 30px" ],
          // 오버라이드 가능한 변수
          "$background_children_offset": [ 0, "-100% + 30px" ],
          // 오버라이드 가능한 변수
          "$background_layer": -3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "mask_layer@mintui_background.background_mask": {
          // 오버라이드 가능한 변수
          "$background_offset": [ 0, "100% - 30px" ],
          // 오버라이드 가능한 변수
          "$background_children_offset": [ 0, "-100% + 30px" ],
          // 오버라이드 가능한 변수
          "$background_layer": -3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "bottom_panel@rainbowpie_ui_common.text_background": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 가로/세로 크기
                "size": [ "100%", "100% - 20px" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "messages_scrolling_panel@content_log_history.messages_scrolling_panel": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_scrollbar_enabled": true,
                      // 가로/세로 크기
                      "size": [ "100%", "100% - 30px" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, -30 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 11
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "bottom_panel@rainbowpie_ui_common.text_background": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100%", 30 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 12,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "horizontal_button_stack_panel@content_log_history.horizontal_button_stack_panel": {
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "center",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "center",
                            // 가로/세로 크기
                            "size": [ "100% - 2px", "100% - 2px" ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

credits_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: credits_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_credits",

  // ???/?? ??
  "skip_panel_anim_offset": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100%y" ],
    // 끝 값
    "to": [ 0, 0 ],
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_credits.skip_panel_anim_wait"
  },

  // ???/?? ??
  "skip_panel_anim_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 5.0,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_credits.skip_panel_anim_offset_end"
  },

  // ???/?? ??
  "skip_panel_anim_offset_end": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, "100%y" ],
    // ?? ??
    "destroy_at_end": "rainbowpieui_skip_panel"
  },

  // ???/?? ??
  "rainbowpieui_skip_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 가로/세로 크기
    "size": [ "100%", 24 ],
    // 애니메이션 목록
    "anims": [
      "@rainbowpieui_credits.skip_panel_anim_offset"
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "exit_credits_input_panel": {
          // 마우스/커서 따라다니는 패널
          "type": "input_panel",
          // 입력 키/버튼과 동작 연결
          "button_mappings": [
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_cancel",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_exit",
              // 입력 시점(pressed 등)
              "mapping_type": "global"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "button_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100% - 6px", "100% - 2px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "middle_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "fill", "100%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "skip_button@common_buttons.light_text_form_fitting_button": {
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_form_fitting_button",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.menu_exit",
                // 오버라이드 가능한 변수
                "$button_text": "credits.skip",
                // 가로/세로 크기
                "size": [ "100%c", "100%" ]
              }
            }
          ]
        }
      }
    ]
  }
}

disconnect_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: disconnect_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_disconnect",

  // ???/?? ??
  "title_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_c48fd864)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "disconnect_title_text@rainbowpie_ui_common.editable_label": {
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // ?? ?? ?
          "max_size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, -10 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // ??? ?? ?
          "text_box_name": "disconnect_title_text",
          // ??? ?? ?
          "text_control": "disconnect_title_display_text",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "disconnect_title_display_text@rainbowpie_ui_common.text_label_notheme": {
                // 가로/세로 크기
                "size": [ "default", 40 ],
                // ?? ?? ?
                "max_size": [ "100% - 20px", 40 ],
                // 보여줄 글자
                "text": "#title_text",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#title_text"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#tts_dialog_title",
                    // ?? ???
                    "binding_condition": "once"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "#title_text",
                    // 결과가 들어갈 속성
                    "target_property_name": "#item_name"
                  }
                ],
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#tts_dialog_title": "#title_text"
                }
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "disconnect_text@rainbowpie_ui_common.editable_label": {
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // ?? ?? ?
          "max_size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, -40 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // ??? ?? ?
          "text_box_name": "disconnect_text",
          // ??? ?? ?
          "text_control": "disconnect_display_text",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "disconnect_display_text@rainbowpie_ui_common.text_label_notheme": {
                // 보여줄 글자
                "text": "#item_name",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#disconnect_text"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#tts_dialog_body",
                    // ?? ???
                    "binding_condition": "once"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "#disconnect_text",
                    // 결과가 들어갈 속성
                    "target_property_name": "#item_name"
                  }
                ],
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#tts_dialog_body": "#disconnect_text"
                }
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "realms_warning_button_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "check_store_button@disconnect.check_store_button": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "continue_button@disconnect.continue_button": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "cancel_button@disconnect.cancel_button": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      }
    ]
  },

  // ???/?? ??
  "realms_disconnect_button_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "check_store_button@disconnect.check_store_button": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "ok_button@disconnect.ok_button": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      }
    ]
  },

  // ???/?? ??
  "button_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "ok_button@disconnect.ok_button": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      }
    ]
  },

  // ???/?? ??
  "dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_disconnect_dialog_buttons|default": "common.empty_panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "stack_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 가로/세로 크기
                      "size": [ "100% - 8px", "100% - 4px" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "disconnect_text@rainbowpie_ui_common.text_label_notheme": {
                            // 보여줄 글자
                            "text": "#disconnect_text",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#disconnect_text"
                              },
                              {
                                // 가져올 값 이름
                                "binding_name": "#tts_dialog_body",
                                // ?? ???
                                "binding_condition": "once"
                              }
                            ],
                            // 이 컨트롤 안에서 쓰는 임시 저장소
                            "property_bag": {
                              // ???/??? ?
                              "#tts_dialog_body": "#disconnect_text"
                            }
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "disconnect_title_text@rainbowpie_ui_common.text_label_notheme": {
                            // 보여줄 글자
                            "text": "#title_text",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#title_text"
                              },
                              {
                                // 가져올 값 이름
                                "binding_name": "#tts_dialog_title",
                                // ?? ???
                                "binding_condition": "once"
                              }
                            ],
                            // 이 컨트롤 안에서 쓰는 임시 저장소
                            "property_bag": {
                              // ???/??? ?
                              "#tts_dialog_title": "#title_text"
                            }
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c + 1px" ],
                // 완전히 제거(공간도 없음)
                "ignored": "($rainbowpie_localui_disconnect_dialog_buttons = 'common.empty_panel')",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100% + 1px", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "button_panel@$rainbowpie_localui_disconnect_dialog_buttons": {
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_default_alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 가로/세로 크기
                            "size": [ "100%", 23 ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "disconnect_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@rainbowpie_ui_common.global_background": {
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
        }
      },
      {
        // ???/?? ??
        "screen_content": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10,
          // 완전히 제거(공간도 없음)
          "ignored": "$rainbowpie_ui_flag_d39385b8",
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "disconnect_screen_content@disconnect.disconnect_screen_content": {} }
          ]
        }
      },
      {
        // ???/?? ??
        "dialog_screen": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 204, 132 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10,
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_d39385b8)",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title": "disconnect.lost",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialog_content": "rainbowpieui_disconnect.dialog_content",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialog_show_background": false,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_show_close": false
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "blur_panel_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ "50% - 102px", 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8,
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_d39385b8 or not $rainbowpie_ui_flag_disconnect_ui_modified)",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "blur_panel_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // ?? ????
                "clips_children": true,
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "50% - 66px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "blur_layer_1@mintui_background.background_blur": {
                      // 오버라이드 가능한 변수
                      "$background_offset": [ "-100% + 204px", "-100% + 132px" ],
                      // 오버라이드 가능한 변수
                      "$background_children_offset": [ "50% - 102px", "50% - 66px" ],
                      // 오버라이드 가능한 변수
                      "$background_layer": 2
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

enchanting_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: enchanting_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_enchanting",

  // 다른 템플릿을 가져와서 확장(상속)
  "lapis_image@enchanting.lapis_image": {
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // 가로/세로 크기
    "size": [ "88.88888888888889%", "88.88888888888889%" ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "enchanting_root_panel@common.root_panel": {
    // 가로/세로 크기
    "size": [ 168, 168 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "inventory_selected_icon_button@common.inventory_selected_icon_button": {} },
      { "gamepad_cursor@common.gamepad_cursor_button": {} },
      { "inventory_take_progress_icon_button@common.inventory_take_progress_icon_button": {} },
      {
        // ???/?? ??
        "inventory_ui_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 애니메이션 목록
          "anims": [
            "@rainbowpie_ui_animations.container_panel_exit_animation_push",
            "@rainbowpie_ui_animations.container_panel_exit_animation_pop",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_push",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_pop"
          ],
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "enchanting_background_icon@rainbowpie_ui_inventory.background_icon": {
                // 가로/세로 크기
                "size": "$rainbowpie_ui_theme_inventory_bgicon_enchanting_size",
                // 기준점에서 이동하는 거리
                "offset": "$rainbowpie_ui_theme_inventory_bgicon_enchanting_offset",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$rainbowpie_ui_theme_inventory_bgicon_enchanting_anchor",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$rainbowpie_ui_theme_inventory_bgicon_enchanting_anchor",
                // 사용할 이미지 경로
                "texture": "$rainbowpie_ui_theme_inventory_bgicon_enchanting_texture",
                // ???
                "alpha": "$rainbowpie_ui_theme_inventory_bgicon_enchanting_alpha",
                // ?? ??
                "fill": "$rainbowpie_ui_theme_inventory_bgicon_enchanting_fill"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background_icon@rainbowpie_ui_inventory.background_icon": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory_header@rainbowpie_ui_inventory.header": {
                // 가로/세로 크기
                "size": [ "100%", "13.69047619047619%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title": "$container_title",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border1_size": [ "2.380952380952381%", 0 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border2_size": [ "2.380952380952381%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "common_panel@common.common_panel": {
                // 오버라이드 가능한 변수
                "$dialog_background": "rainbowpie_ui_common.inventory_background",
                // 오버라이드 가능한 변수
                "$show_close_button": false,
                // 가로/세로 크기
                "size": [ "100%", "100% - 13.69047619047619%" ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle"
              }
            },
            {
              // ???/?? ??
              "enchanting_panel_top_half": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "36.30952380952381%" ], // 162x61
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-48.21428571428571%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "enchanting_book_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 기준점에서 이동하는 거리
                      "offset": [ "4.938271604938272%", "-24.59016393442623%" ],
                      // 가로/세로 크기
                      "size": [ "100%y", "65.57377049180328%" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "enchanting_book": {
                            // 특수 렌더러(그라디언트/플레이어 등)
                            "type": "custom",
                            // 커스텀 렌더러 종류
                            "renderer": "enchanting_book_renderer",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 13,
                            // ????? ?? ?
                            "animation_reset_name": "screen_animation_reset",
                            // 애니메이션 목록
                            "anims": [
                              "@common.screen_exit_size_animation_push",
                              "@common.screen_exit_size_animation_pop",
                              "@common.screen_entrance_size_animation_push",
                              "@common.screen_entrance_size_animation_pop"
                            ],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#open",
                                // 게임이 주는 전역 값 연결
                                "binding_type": "global"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "item_grid": {
                      // 격자 컨테이너: 칸칸이 배치
                      "type": "grid",
                      // 그리드 칸 수
                      "grid_dimensions": [ 1, 1 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ "4.938271604938272%", "19.67213114754098%" ],
                      // 가로/세로 크기
                      "size": [ "100%y", "29.50819672131148%" ],
                      // 목록 이름
                      "collection_name": "enchanting_input_items",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "item_slot@rainbowpie_ui_inventory_and_container.container_item": {
                            // 그리드 위치
                            "grid_position": [ 0, 0 ],
                            // 오버라이드 가능한 변수
                            "$item_collection_name": "enchanting_input_items"
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "lapis_grid": {
                      // 격자 컨테이너: 칸칸이 배치
                      "type": "grid",
                      // 그리드 칸 수
                      "grid_dimensions": [ 1, 1 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ "17.28395061728395%", "19.67213114754098%" ],
                      // 가로/세로 크기
                      "size": [ "100%y", "29.50819672131148%" ],
                      // 목록 이름
                      "collection_name": "enchanting_lapis_items",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "lapis@rainbowpie_ui_inventory_and_container.container_item": {
                            // 그리드 위치
                            "grid_position": [ 0, 0 ],
                            // 오버라이드 가능한 변수
                            "$cell_overlay_ref": "rainbowpieui_enchanting.lapis_image",
                            // 오버라이드 가능한 변수
                            "$item_collection_name": "enchanting_lapis_items",

                            // 오버라이드 가능한 변수
                            "$focus_id_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_id": "enchanting_lapis"
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "grid_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 가로/세로 크기
                      "size": [ "65%", "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "dust_panel@enchanting.dust_panel": {
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_left",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_left",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 10
                          }
                        },
                        {
                          // ???/?? ??
                          "enchantments_grid": {
                            // 격자 컨테이너: 칸칸이 배치
                            "type": "grid",
                            // 목록 이름
                            "collection_name": "#enchant_buttons",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 2,
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "center",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "center",
                            // 그리드 칸 수
                            "grid_dimensions": [ 1, 3 ],
                            // ??? ?? ?
                            "grid_item_template": "enchanting.enchant_button_panel"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory@rainbowpie_ui_inventory_and_container.inventory_panel_bottom_half": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "32.14285714285714%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-14.28571428571429%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar@rainbowpie_ui_inventory_and_container.hotbar_grid_template": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "10.71428571428571%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-1.785714285714286%" ]
              }
            }
          ]
        }
      }
    ]
  }
}

furnace_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: furnace_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_furnace",

  // 다른 템플릿을 가져와서 확장(상속)
  "furnace_root_panel@common.root_panel": {
    // 가로/세로 크기
    "size": [ 168, 161 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "inventory_selected_icon_button@common.inventory_selected_icon_button": {} },
      { "gamepad_cursor@common.gamepad_cursor_button": {} },
      { "inventory_take_progress_icon_button@common.inventory_take_progress_icon_button": {} },
      {
        // ???/?? ??
        "inventory_ui_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 애니메이션 목록
          "anims": [
            "@rainbowpie_ui_animations.container_panel_exit_animation_push",
            "@rainbowpie_ui_animations.container_panel_exit_animation_pop",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_push",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_pop"
          ],
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "furnace_background_icon@rainbowpie_ui_inventory.background_icon": {
                // 가로/세로 크기
                "size": "$size",
                // 기준점에서 이동하는 거리
                "offset": "$offset",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$anchor_to",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$anchor_from",
                // 사용할 이미지 경로
                "texture": "$texture",
                // ???
                "alpha": "$alpha",
                // ?? ??
                "fill": "$fill",

                // 오버라이드 가능한 변수
                "$size": "$rainbowpie_ui_theme_inventory_bgicon_furnace_size",
                // 오버라이드 가능한 변수
                "$offset": "$rainbowpie_ui_theme_inventory_bgicon_furnace_offset",
                // 오버라이드 가능한 변수
                "$anchor_to": "$rainbowpie_ui_theme_inventory_bgicon_furnace_anchor",
                // 오버라이드 가능한 변수
                "$anchor_from": "$rainbowpie_ui_theme_inventory_bgicon_furnace_anchor",
                // 오버라이드 가능한 변수
                "$texture": "$rainbowpie_ui_theme_inventory_bgicon_furnace_texture",
                // 오버라이드 가능한 변수
                "$alpha": "$rainbowpie_ui_theme_inventory_bgicon_furnace_alpha",
                // 오버라이드 가능한 변수
                "$fill": "$rainbowpie_ui_theme_inventory_bgicon_furnace_fill",
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$is_blast_furnace",
                    // 오버라이드 가능한 변수
                    "$size": "$rainbowpie_ui_theme_inventory_bgicon_furnaceblast_size",
                    // 오버라이드 가능한 변수
                    "$offset": "$rainbowpie_ui_theme_inventory_bgicon_furnaceblast_offset",
                    // 오버라이드 가능한 변수
                    "$anchor_to": "$rainbowpie_ui_theme_inventory_bgicon_furnaceblast_anchor",
                    // 오버라이드 가능한 변수
                    "$anchor_from": "$rainbowpie_ui_theme_inventory_bgicon_furnaceblast_anchor",
                    // 오버라이드 가능한 변수
                    "$texture": "$rainbowpie_ui_theme_inventory_bgicon_furnaceblast_texture",
                    // 오버라이드 가능한 변수
                    "$alpha": "$rainbowpie_ui_theme_inventory_bgicon_furnaceblast_alpha",
                    // 오버라이드 가능한 변수
                    "$fill": "$rainbowpie_ui_theme_inventory_bgicon_furnaceblast_fill"
                  },
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$is_smoker",
                    // 오버라이드 가능한 변수
                    "$size": "$rainbowpie_ui_theme_inventory_bgicon_furnacesmoker_size",
                    // 오버라이드 가능한 변수
                    "$offset": "$rainbowpie_ui_theme_inventory_bgicon_furnacesmoker_offset",
                    // 오버라이드 가능한 변수
                    "$anchor_to": "$rainbowpie_ui_theme_inventory_bgicon_furnacesmoker_anchor",
                    // 오버라이드 가능한 변수
                    "$anchor_from": "$rainbowpie_ui_theme_inventory_bgicon_furnacesmoker_anchor",
                    // 오버라이드 가능한 변수
                    "$texture": "$rainbowpie_ui_theme_inventory_bgicon_furnacesmoker_texture",
                    // 오버라이드 가능한 변수
                    "$alpha": "$rainbowpie_ui_theme_inventory_bgicon_furnacesmoker_alpha",
                    // 오버라이드 가능한 변수
                    "$fill": "$rainbowpie_ui_theme_inventory_bgicon_furnacesmoker_fill"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background_icon@rainbowpie_ui_inventory.background_icon": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory_header@rainbowpie_ui_inventory.header": {
                // 가로/세로 크기
                "size": [ "100%", "14.28571428571429%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title": "$container_title",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border1_size": [ "2.380952380952381%", 0 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border2_size": [ "2.380952380952381%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "common_panel@common.common_panel": {
                // 오버라이드 가능한 변수
                "$dialog_background": "rainbowpie_ui_common.inventory_background",
                // 오버라이드 가능한 변수
                "$show_close_button": false,
                // 가로/세로 크기
                "size": [ "100%", "100% - 14.28571428571429%" ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle"
              }
            },
            {
              // ???/?? ??
              "furnace_panel_top_half": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "33.54037267080745%" ], // 162x54
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-50.31055900621118%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "furnace_input_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "50%", "100%" ], // 81x54
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%y", "29.62962962962963%" ], // 16x16
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "right_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "right_middle",
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "furnace_ingredient_panel": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "112.5%" ],
                                  // 기준점에서 이동하는 거리
                                  "offset": [ "-125%", "-118.75%" ],
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "right_middle",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "right_middle",
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "ingredient_item@rainbowpie_ui_inventory_and_container.container_item": {
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "left_middle",
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "left_middle",
                                        // 오버라이드 가능한 변수
                                        "$item_collection_name": "furnace_ingredient_items",

                                        // 오버라이드 가능한 변수
                                        "$focus_id": "furnace_ingredient_item",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_left": "FOCUS_OVERRIDE_STOP",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_left_binding_type": "none",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_up": "FOCUS_OVERRIDE_STOP",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_up_binding_type": "none"
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "flame_panel": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "81.25%" ],
                                  // 기준점에서 이동하는 거리
                                  "offset": [ "-131.25%", 0 ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "flame_empty_image@furnace.flame_empty_image": {}
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "flame_full_image@furnace.flame_full_image": {}
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "furnace_fuel_panel": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "112.5%" ],
                                  // 기준점에서 이동하는 거리
                                  "offset": [ "-125%", "118.75%" ],
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "right_middle",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "right_middle",
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "fuel_item@rainbowpie_ui_inventory_and_container.container_item": {
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "left_middle",
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "left_middle",
                                        // 오버라이드 가능한 변수
                                        "$item_collection_name": "furnace_fuel_items",

                                        // 오버라이드 가능한 변수
                                        "$focus_id": "furnace_fuel_item",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_right": "furnace_output_item",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_right_binding_type": "none",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_left": "FOCUS_OVERRIDE_STOP",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_left_binding_type": "none"
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "furnace_arrow_empty_image@furnace.furnace_arrow_empty_image": {
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 가로/세로 크기
                      "size": [ "13.58024691358025%", "27.77777777777778%" ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "furnace_arrow_full_image@furnace.furnace_arrow_full_image": {
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 가로/세로 크기
                      "size": [ "13.58024691358025%", "27.77777777777778%" ]
                    }
                  },
                  {
                    // ???/?? ??
                    "furnace_output_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "50%", "100%" ], // 81x54
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_right",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_right",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "output_item@rainbowpie_ui_inventory_and_container.container_item": {
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 가로/세로 크기
                            "size": [ "100%y", "48.14814814814815%" ],
                            // 오버라이드 가능한 변수
                            "$item_renderer_panel_size": [ "100%y", "69.23076923076923%" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ "24.69135802469136%", 0 ],
                            // 오버라이드 가능한 변수
                            "$item_collection_name": "furnace_output_items",

                            // 오버라이드 가능한 변수
                            "$focus_id": "furnace_output_item",
                            // 오버라이드 가능한 변수
                            "$focus_override_right_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_right": "FOCUS_OVERRIDE_STOP",
                            // 오버라이드 가능한 변수
                            "$focus_override_left_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_left": "furnace_fuel_item"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory@rainbowpie_ui_inventory_and_container.inventory_panel_bottom_half": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "33.54037267080745%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-14.90683229813665%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar@rainbowpie_ui_inventory_and_container.hotbar_grid_template": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "11.18012422360248%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-1.863354037267081%" ]
              }
            }
          ]
        }
      }
    ]
  }
}

general_section_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: general_section_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_general_section",

  // 다른 템플릿을 가져와서 확장(상속)
  "about_button@settings_common.section_toggle_base": {
    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "about_button_toggle",
    // 오버라이드 가능한 변수
    "$glyph_texture": "",
    // 오버라이드 가능한 변수
    "$glyph_color_texture": "",
    // 오버라이드 가능한 변수
    "$glyph_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$icon_group_name": "RainbowPie",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "about",
    // 오버라이드 가능한 변수
    "$button_text": "rainbowpie.ui.settings.about.title",
    // 오버라이드 가능한 변수
    "$toggle_property_bag": {
      // ???/??? ?
      "#panel_title": "rainbowpie.ui.settings.about.title"
    }
  },

  // ???/?? ??
  "about_section": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "about_button_toggle",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "header_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c + 20px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "background": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100% - 32px", "100%cm + 4px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 16 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 사용할 이미지 경로
                "texture": "($rainbowpie_ui_path_home + '/r_white')",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_text_background_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_text_background_alpha",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "content_stack_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 가로/세로 크기
                      "size": [ "100% - 84px", "100%c" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 3, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "label_1@rainbowpie_ui_common.text_label": {
                            // 완전히 제거(공간도 없음)
                            "ignored": "$rainbowpie_ui_flag_about_verison_infomation",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1,
                            // 가로/세로 크기
                            "size": [ "100% - 44px", "default" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ 42, 1 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_left",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_left",
                            // 보여줄 글자
                            "text": "$mintui_pack_name",
                            // ?? ?? ??
                            "font_scale_factor": 1.5
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "label_2@rainbowpie_ui_common.text_label": {
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1,
                            // 가로/세로 크기
                            "size": [ "100% - 44px", "default" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ 42, 16 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_left",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_left",
                            // 보여줄 글자
                            "text": "$rainbowpie_ui_string_about_description"
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "twilight_gif": {
                      // 이미지 표시
                      "type": "image",
                      // 사용할 이미지 경로
                      "texture": "($rainbowpie_ui_path_home + '/assets/twilight')",
                      // ???? ??
                      "uv_size": [ 49, 48 ],
                      // ???? ?? ??
                      "uv": "@rainbowpieui_general_section.twilight_gif_animation",
                      // ????? ?? ?
                      "disable_anim_fast_forward": true,
                      // 가로/세로 크기
                      "size": [ 50, 50 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ -3, 3 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_right",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_right"
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "version_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_about_verison_infomation)",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "version_stack_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 가로/세로 크기
                "size": [ "100% - 32px", "100%c" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title_label@rainbowpie_ui_common.text_label": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 가로/세로 크기
                      "size": [ "100%", "default" ],
                      // 보여줄 글자
                      "text": "$mintui_pack_name",
                      // ?? ?? ??
                      "font_scale_factor": 1.5
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title_driven@rainbowpieui_settings_common.driven": {}
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "branch@rainbowpieui_general_section.info_label": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_info_title": "rainbowpie.ui.about.version.branch",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_info_value": "('\"' + $rainbowpieui_branch_type + '/' + $rainbowpieui_branch_name + '\"')"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "commit@rainbowpieui_general_section.info_label": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_info_title": "rainbowpie.ui.about.version.commit",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_info_value": "('\"' + $rainbowpieui_commit_id + '\"')"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "version@rainbowpieui_general_section.info_label": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_info_title": "rainbowpie.ui.about.version.version",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_info_value": "('\"' + $rainbowpieui_engine_version_name + '.' + $rainbowpieui_patch_version + '.' + $rainbowpieui_hotfix_version + '\"')"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "codename@rainbowpieui_general_section.info_label": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_info_title": "rainbowpie.ui.about.version.codename",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_info_value": "('\"' + $rainbowpieui_codename + '\"')"
                    }
                  },
                  {
                    // ???/?? ??
                    "compatibility_padding": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 0, 6 ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "compatibility_title_label@rainbowpie_ui_common.text_label": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 가로/세로 크기
                      "size": [ "100%", "default" ],
                      // 보여줄 글자
                      "text": "rainbowpie.ui.about.compatibility",
                      // ?? ?? ??
                      "font_scale_factor": 1.5
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "compatibility_title_driven@rainbowpieui_settings_common.driven": {}
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "subpacks@rainbowpieui_general_section.info_label": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_info_title": "rainbowpie.ui.about.compatibility.subpacks",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_info_value": "('\"' + $rainbowpieui_version_minecraft_subpacks + '\"')"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "compatibility_variable_panel@rainbowpieui_compatibility_config.compatibility_variables": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 가로/세로 크기
                      "size": [ "100%", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "target@rainbowpieui_general_section.info_label": {
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_info_title": "rainbowpie.ui.about.compatibility.target",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_info_value": "('\"' + $rainbowpieui_version_minecraft_target + '\"')"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "compatible@rainbowpieui_general_section.info_label": {
                            // 오버라이드 가능한 변수
                            "$minor_max": "($rainbowpieui_version_minecraft_max - ($rainbowpieui_version_minecraft_bigver + '.'))",
                            // 오버라이드 가능한 변수
                            "$minor_min": "($rainbowpieui_version_minecraft_min - ($rainbowpieui_version_minecraft_bigver + '.'))",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_info_title": "rainbowpie.ui.about.compatibility.compatible",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_info_value": "('\"' + $rainbowpieui_version_minecraft_bigver + '.' + $minor_min + '-' + $minor_max + '\"')"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "target_code@rainbowpieui_general_section.info_label": {
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_info_title": "rainbowpie.ui.about.compatibility.target_code",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_info_value": "('\"' + $compatibility_target_version + '\"')"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "max_code@rainbowpieui_general_section.info_label": {
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_info_title": "rainbowpie.ui.about.compatibility.max_code",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_info_value": "('\"' + $compatibility_max_version + '\"')"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "min_code@rainbowpieui_general_section.info_label": {
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_info_title": "rainbowpie.ui.about.compatibility.min_code",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_info_value": "('\"' + $compatibility_min_version + '\"')"
                          }
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "resource_pack_id@rainbowpieui_general_section.info_label": {
                      // 보이기/숨기기(공간 유지)
                      "visible": "(not ($rainbowpie_ui_flag_resourcepack_identifier = ''))",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_info_title": "rainbowpie.ui.about.compatibility.resource_pack_id",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_info_value": "('\"' + $rainbowpie_ui_flag_resourcepack_identifier + '\"')"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "resource_pack_displayname@rainbowpieui_general_section.info_label": {
                      // 보이기/숨기기(공간 유지)
                      "visible": "(not ($rainbowpie_ui_flag_resourcepack_displayname = ''))",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_info_title": "rainbowpie.ui.about.compatibility.resource_pack_displayname",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_info_value": "('\"' + $rainbowpie_ui_flag_resourcepack_displayname + '\"')"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "info_label": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c + 4px" ],

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_info_title|default": "INFOMATION TITLE",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_info_value|default": "default value",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "info_label": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%", "100%cm" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "info_title_label@rainbowpie_ui_common.text_label": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 가로/세로 크기
                "size": [ "fill", "default" ],
                // 보여줄 글자
                "text": "$rainbowpie_localui_info_title"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "info_title_label@rainbowpie_ui_common.text_label": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 가로/세로 크기
                "size": [ "fill", "default" ],
                // 보여줄 글자
                "text": "$rainbowpie_localui_info_value"
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "twilight_gif_animation": {
    // 프레임 애니메이션
    "anim_type": "flip_book",
    // ?? ??
    "initial_uv": [ 0, 0 ],
    // ?? ??
    "frame_count": 15,
    // ?? ??
    "frame_step": 15,
    // ?? ??
    "fps": 5,
    // ?? ??
    "reversible": false,
    // 움직임 곡선
    "easing": "linear"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "global_texture_pack_header@rainbowpieui_resource_packs.resource_packs_header": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_type": "global",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_control": "global_rp_search_text_box_display_text",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_placeholder": "rainbowpie.ui.resource_packs.search.placeholder.resource",
    // 오버라이드 가능한 변수
    "$selected_pack_items": "#selected_pack_items_global",
    // 오버라이드 가능한 변수
    "$available_pack_items": "#available_pack_items_global",
    // 오버라이드 가능한 변수
    "$selected_label_text": "resourcePack.selected.title.packs",
    // 오버라이드 가능한 변수
    "$available_label_text": "resourcePack.available.title.packs",
    // 오버라이드 가능한 변수
    "$show_checkbox": false,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "global_texture_pack_button_toggle",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "graphics_button@settings_common.section_toggle_base": {
    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "graphics_button_toggle",
    // 오버라이드 가능한 변수
    "$glyph_texture": "textures/ui/video_glyph",
    // 오버라이드 가능한 변수
    "$glyph_color_texture": "textures/ui/video_glyph_color",
    // 오버라이드 가능한 변수
    "$glyph_size": [ 15, 12 ],
    // 오버라이드 가능한 변수
    "$icon_group_name": "general",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "graphics",
    // 오버라이드 가능한 변수
    "$button_text": "rainbowpie.ui.settings.graphics",
    // 오버라이드 가능한 변수
    "$toggle_property_bag": {
      // ???/??? ?
      "#panel_title": "rainbowpie.ui.settings.graphics.title"
    }
  },

  // ???/?? ??
  "graphics_section": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "graphics_button_toggle",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "vsync_dropdown@settings_common.option_dropdown": {
          // 오버라이드 가능한 변수
          "$option_label": "options.vsync",
          // 오버라이드 가능한 변수
          "$dropdown_content": "general_section.vysnc_dropdown_content",
          // 오버라이드 가능한 변수
          "$dropdown_area": "content_area",
          // 오버라이드 가능한 변수
          "$dropdown_name": "vsync_dropdown",
          // 오버라이드 가능한 변수
          "$options_dropdown_toggle_label_binding": "#vsync_dropdown_toggle_label",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#vsync_dropdown_enabled",
          // 오버라이드 가능한 변수
          "$dropdown_scroll_content_size": [ "100%", "200%" ],

          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dropdown_enabled": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dropdown_content": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
                // 오버라이드 가능한 변수
                "$toggle_state_binding_name": "#vsync_off",
                // 오버라이드 가능한 변수
                "$radio_label_text": "options.vsync.off"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
                // 오버라이드 가능한 변수
                "$toggle_state_binding_name": "#vsync_on",
                // 오버라이드 가능한 변수
                "$radio_label_text": "options.vsync.on"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
                // 오버라이드 가능한 변수
                "$toggle_state_binding_name": "#vsync_adaptive",
                // 오버라이드 가능한 변수
                "$radio_label_text": "options.vsync.adaptive"
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "fancy_leaves_toggle@settings_common.option_toggle": {
          // 완전히 제거(공간도 없음)
          "ignored": "($pocket_edition or $is_holographic)",
          // 오버라이드 가능한 변수
          "$option_label": "options.transparentleaves",
          // 오버라이드 가능한 변수
          "$option_binding_name": "#transparent_leaves",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#transparent_leaves_enabled",
          // 오버라이드 가능한 변수
          "$toggle_name": "transparent_leaves"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "render_clouds_toggle@settings_common.option_toggle": {
          // 오버라이드 가능한 변수
          "$option_label": "options.renderclouds",
          // 오버라이드 가능한 변수
          "$option_binding_name": "#render_clouds",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#render_clouds_enabled",
          // 오버라이드 가능한 변수
          "$toggle_name": "render_clouds"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "raytracing_render_distance_slider@settings_common.option_slider": {
          // 오버라이드 가능한 변수
          "$option_label": "#raytracing_render_distance_slider_label",
          // 오버라이드 가능한 변수
          "$slider_name": "raytracing_render_distance",
          // 오버라이드 가능한 변수
          "$slider_value_binding_name": "#raytracing_render_distance",
          // 오버라이드 가능한 변수
          "$slider_tts_text_value": "#raytracing_render_distance_text_value",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#raytracing_render_distance_enabled",
          // 오버라이드 가능한 변수
          "$option_tooltip_binding_type": "global",
          // 오버라이드 가능한 변수
          "$option_tooltip_area": "general_and_controls_sections",
          // 오버라이드 가능한 변수
          "$option_tooltip_text_binding_name": "#rtx_renderdist_performance_tooltip_text",
          // 오버라이드 가능한 변수
          "$option_tooltip_visible_binding_name": "#rtx_render_distance_warning_visible",
          // 오버라이드 가능한 변수
          "$option_tooltip_icon": "textures/ui/WarningGlyph",
          // 오버라이드 가능한 변수
          "$slider_steps_binding_name": "#raytracing_render_distance_steps",
          // 오버라이드 가능한 변수
          "$label_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$option_label"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "option_generic_core@settings_common.option_generic_core": { } }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#show_raytracing_render_distance",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "deferred_render_distance_slider@settings_common.option_slider": {
          // 완전히 제거(공간도 없음)
          "ignored": "($is_holographic)",
          // 오버라이드 가능한 변수
          "$option_label": "#deferred_render_distance_slider_label",
          // 오버라이드 가능한 변수
          "$slider_name": "deferred_render_distance",
          // 오버라이드 가능한 변수
          "$slider_value_binding_name": "#deferred_render_distance",
          // 오버라이드 가능한 변수
          "$slider_tts_text_value": "#deferred_render_distance_text_value",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#deferred_render_distance_enabled",
          // 오버라이드 가능한 변수
          "$slider_steps_binding_name": "#deferred_render_distance_steps",
          // 오버라이드 가능한 변수
          "$label_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$option_label"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "option_generic_core@settings_common.option_generic_core": {} }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#show_deferred_render_distance",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "render_distance_slider@settings_common.option_slider": {
          // 완전히 제거(공간도 없음)
          "ignored": "($is_holographic)",
          // 오버라이드 가능한 변수
          "$option_label": "#render_distance_slider_label",
          // 오버라이드 가능한 변수
          "$slider_name": "render_distance",
          // 오버라이드 가능한 변수
          "$slider_value_binding_name": "#render_distance",
          // 오버라이드 가능한 변수
          "$slider_tts_text_value": "#render_distance_text_value",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#render_distance_enabled",
          // 오버라이드 가능한 변수
          "$slider_steps_binding_name": "#render_distance_steps",
          // 오버라이드 가능한 변수
          "$label_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$option_label"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "render_distance_warning@general_section.render_distance_warning": {} },
            { "option_generic_core@settings_common.option_generic_core": {} }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#show_render_distance",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "render_distance_warning_text": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%cm + 16px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "render_distance_easter_popup@common.static_tooltip_popup_with_image_and_text": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_flag_3520da91)",
                // 가로/세로 크기
                "size": [ "100% - 4px", "100%cm + 8px" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 오버라이드 가능한 변수
                "$tooltip_panel_offset": [ 0, 6 ],
                // 오버라이드 가능한 변수
                "$tooltip_popup_image": "textures/ui/WarningGlyph",
                // 오버라이드 가능한 변수
                "$tooltip_button_binding_type": "none",
                // 오버라이드 가능한 변수
                "$tooltip_button_collection_name": "",
                // 오버라이드 가능한 변수
                "$tooltip_text_binding_name": "Now you can use your CPU to fry eggs! :D",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#render_distance_slider_label"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not ((#render_distance_slider_label - '96 ') = #render_distance_slider_label))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#is_96_distance"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not ((#render_distance_slider_label - '96+ ') = #render_distance_slider_label))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#is_96plus_distance"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#is_96_distance or #is_96plus_distance)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "render_distance_popup@common.static_tooltip_popup_with_image_and_text": {
                // 가로/세로 크기
                "size": [ "100% - 4px", "100%cm + 8px" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 오버라이드 가능한 변수
                "$tooltip_panel_offset": [ 0, 6 ],
                // 오버라이드 가능한 변수
                "$tooltip_popup_image": "textures/ui/WarningGlyph",
                // 오버라이드 가능한 변수
                "$tooltip_button_binding_type": "global",
                // 오버라이드 가능한 변수
                "$tooltip_button_collection_name": "",
                // 오버라이드 가능한 변수
                "$tooltip_popup_visible_binding": "#render_distance_warning_visible",
                // 오버라이드 가능한 변수
                "$tooltip_text_binding_name": "#render_distance_performance_tooltip_text",
                // 오버라이드 가능한 변수
                "$tooltip_chevron_anchor": "top_right",
                // 오버라이드 가능한 변수
                "$tooltip_popup_chevron_offset": [ "-30%x", "-10px" ],
                // 오버라이드 가능한 변수
                "$tooltip_popup_chevron_texture": "textures/ui/tooltip_inverted_chevron",
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#is_96_distance": false,
                  // ???/??? ?
                  "#is_96plus_distance": false
                },
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#render_distance_slider_label"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not ((#render_distance_slider_label - '96 ') = #render_distance_slider_label))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#is_96_distance",
                    // 완전히 제거(공간도 없음)
                    "ignored": "(not $rainbowpie_ui_flag_3520da91)"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not ((#render_distance_slider_label - '96+ ') = #render_distance_slider_label))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#is_96plus_distance",
                    // 완전히 제거(공간도 없음)
                    "ignored": "(not $rainbowpie_ui_flag_3520da91)"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (#is_96_distance or #is_96plus_distance))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#render_distance_warning_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "advanced_graphics_options_panel": {
          // 완전히 제거(공간도 없음)
          "ignored": "($is_holographic)",
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": [ "100%", "100%c + 4px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "graphics_mode@settings_common.option_dropdown": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dropdown_enabled": true,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dropdown_content": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
                      // 오버라이드 가능한 변수
                      "$toggle_state_binding_name": "#graphics_mode_radio_simple",
                      // 오버라이드 가능한 변수
                      "$radio_label_text": "options.graphicsMode.simple"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
                      // 오버라이드 가능한 변수
                      "$toggle_state_binding_name": "#graphics_mode_radio_fancy",
                      // 오버라이드 가능한 변수
                      "$radio_label_text": "options.graphicsMode.fancy"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
                      // 오버라이드 가능한 변수
                      "$toggle_state_binding_name": "#graphics_mode_radio_deferred",
                      // 오버라이드 가능한 변수
                      "$option_enabled_binding_name": "#graphics_mode_radio_deferred_enabled",
                      // 오버라이드 가능한 변수
                      "$radio_label_text": "options.graphicsMode.deferred"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
                      // 오버라이드 가능한 변수
                      "$toggle_state_binding_name": "#graphics_mode_radio_ray_traced",
                      // 오버라이드 가능한 변수
                      "$option_enabled_binding_name": "#graphics_mode_radio_ray_traced_enabled",
                      // 오버라이드 가능한 변수
                      "$radio_label_text": "options.graphicsMode.rayTraced"
                    }
                  }
                ],

                // 오버라이드 가능한 변수
                "$option_label": "options.graphicsMode",
                // 오버라이드 가능한 변수
                "$dropdown_content": "general_section.graphics_mode_dropdown_content",
                // 오버라이드 가능한 변수
                "$dropdown_area": "content_area",
                // 오버라이드 가능한 변수
                "$dropdown_name": "graphics_mode_dropdown",
                // 오버라이드 가능한 변수
                "$option_enabled_binding_name": "#graphics_mode_dropdown_enabled",
                // 오버라이드 가능한 변수
                "$options_dropdown_toggle_label_binding": "#graphics_mode_dropdown_toggle_label",
                // 오버라이드 가능한 변수
                "$dropdown_scroll_content_size": [ "100%", "255%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "graphics_quality_preset_mode_dropdown_content@settings_common.option_radio_dropdown_group": {
                // 오버라이드 가능한 변수
                "$option_enabled_binding_name": "#graphics_quality_preset_mode_dropdown_enabled",
                // 오버라이드 가능한 변수
                "$radio_buttons": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "@settings_common.radio_with_label": {
                      // 오버라이드 가능한 변수
                      "$toggle_state_binding_name": "#graphics_quality_preset_mode_radio_performance",
                      // 오버라이드 가능한 변수
                      "$radio_label_text": "options.graphicsQualityPresetMode.performance"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "@settings_common.radio_with_label": {
                      // 오버라이드 가능한 변수
                      "$toggle_state_binding_name": "#graphics_quality_preset_mode_radio_visuals",
                      // 오버라이드 가능한 변수
                      "$radio_label_text": "options.graphicsQualityPresetMode.visuals"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "@settings_common.radio_with_label": {
                      // 오버라이드 가능한 변수
                      "$toggle_state_binding_name": "#graphics_quality_preset_mode_radio_custom",
                      // 오버라이드 가능한 변수
                      "$radio_label_text": "options.graphicsQualityPresetMode.custom"
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#graphics_mode_is_deferred",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "advanced_graphics_options_section@general_section.advanced_graphics_options_section": {}
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "raytracing_button@settings_common.section_toggle_base": {
    // 완전히 제거(공간도 없음)
    "ignored": true,
    // 오버라이드 가능한 변수
    "$icon_group_name": "general",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "raytracing",
    // 오버라이드 가능한 변수
    "$button_text": "options.raytracing",
    // 오버라이드 가능한 변수
    "$toggle_property_bag": {
      // ???/??? ?
      "#panel_title": "rainbowpie.ui.settings.raytracing.title"
    }
  },

  // ???/?? ??
  "raytracing_section": {
    // 완전히 제거(공간도 없음)
    "ignored": true,
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "raytracing_button_toggle",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "module_button@settings_common.section_toggle_base": {
    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "module_button_toggle",
    // 오버라이드 가능한 변수
    "$glyph_texture": "",
    // 오버라이드 가능한 변수
    "$glyph_color_texture": "",
    // 오버라이드 가능한 변수
    "$glyph_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$icon_group_name": "RainbowPie",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "module",
    // 오버라이드 가능한 변수
    "$button_text": "rainbowpie.ui.settings.module.title",
    // 오버라이드 가능한 변수
    "$toggle_property_bag": {
      // ???/??? ?
      "#panel_title": "rainbowpie.ui.settings.module.title"
    }
  },

  // ???/?? ??
  "module_section": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "module_button_toggle",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "module_list@rainbowpieui_module_pack.module_list": {}
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "theme_button@settings_common.section_toggle_base": {
    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "theme_button_toggle",
    // 오버라이드 가능한 변수
    "$glyph_texture": "",
    // 오버라이드 가능한 변수
    "$glyph_color_texture": "",
    // 오버라이드 가능한 변수
    "$glyph_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$icon_group_name": "RainbowPie",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "theme",
    // 오버라이드 가능한 변수
    "$button_text": "rainbowpie.ui.settings.theme.title",
    // 오버라이드 가능한 변수
    "$toggle_property_bag": {
      // ???/??? ?
      "#panel_title": "rainbowpie.ui.settings.theme.title"
    }
  },

  // ???/?? ??
  "theme_section": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "theme_button_toggle",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "theme_info@rainbowpie_ui_common.text_background": {
          // 가로/세로 크기
          "size": [ 230, 40 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "icon_image": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100%y", "100%" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 사용할 이미지 경로
                "texture": "$rainbowpie_ui_theme_icon"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "label_1@rainbowpie_ui_common.text_label": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 가로/세로 크기
                "size": [ "100% - 44px", 15 ],
                // 기준점에서 이동하는 거리
                "offset": [ 42, 1 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 보여줄 글자
                "text": "$rainbowpie_ui_theme_name",
                // ?? ?? ??
                "font_scale_factor": 1.5
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "label_2@rainbowpie_ui_common.text_label": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 가로/세로 크기
                "size": [ "100% - 44px", 10 ],
                // 기준점에서 이동하는 거리
                "offset": [ 42, 16 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 보여줄 글자
                "text": "$rainbowpie_ui_theme_author"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "label_3@rainbowpie_ui_common.text_label": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 가로/세로 크기
                "size": [ "100% - 44px", 10 ],
                // 기준점에서 이동하는 거리
                "offset": [ 42, 27 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 보여줄 글자
                "text": "$rainbowpie_ui_theme_desc"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 2, 2 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "theme_version_toohight_warn@rainbowpie_ui_common.text_background": {
          // 보이기/숨기기(공간 유지)
          "visible": "($rainbowpie_ui_theme_version > $rainbowpie_ui_themesystem_version)",
          // 가로/세로 크기
          "size": [ 230, 14 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "theme_version_toohight@rainbowpie_ui_common.text_label": {
                // ?? (R,G,B,A)
                "color": [ 1.0, 1.0, 0.333 ],
                // 가로/세로 크기
                "size": [ "default", "default" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 보여줄 글자
                "text": "rainbowpie.ui.themesystem.version_toohight"
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "theme_version_toolow_warn@rainbowpie_ui_common.text_background": {
          // 보이기/숨기기(공간 유지)
          "visible": "($rainbowpie_ui_themesystem_version > $rainbowpie_ui_theme_version)",
          // 가로/세로 크기
          "size": [ 230, 14 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "theme_version_toolow@rainbowpie_ui_common.text_label": {
                // ?? (R,G,B,A)
                "color": [ 1.0, 0.333, 0.333 ],
                // 가로/세로 크기
                "size": [ "default", "default" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 보여줄 글자
                "text": "rainbowpie.ui.themesystem.version_toolow"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding_1": {
          // 보이기/숨기기(공간 유지)
          "visible": "($rainbowpie_ui_theme_version > $rainbowpie_ui_themesystem_version)",
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 2, 2 ]
        }
      },
      {
        // ???/?? ??
        "padding_2": {
          // 보이기/숨기기(공간 유지)
          "visible": "($rainbowpie_ui_themesystem_version > $rainbowpie_ui_theme_version)",
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 2, 2 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "theme_preview@rainbowpie_ui_theme_preview.theme_preview": {
          // 가로/세로 크기
          "size": [ "100%", 120 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "theme_description_title@rainbowpie_ui_common.text_label": {
          // ?? (R,G,B,A)
          "color": "$body_text_color",
          // 가로/세로 크기
          "size": [ "default", "default" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 보여줄 글자
          "text": "rainbowpie.ui.themesystem.description.title"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "theme_description@rainbowpie_ui_common.text_label": {
          // ?? (R,G,B,A)
          "color": "$body_text_color",
          // 가로/세로 크기
          "size": [ "100%", "default" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 보여줄 글자
          "text": "$rainbowpie_ui_theme_description"
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "uitest_button@settings_common.section_toggle_base": {
    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "uitest_button_toggle",
    // 오버라이드 가능한 변수
    "$glyph_texture": "",
    // 오버라이드 가능한 변수
    "$glyph_color_texture": "",
    // 오버라이드 가능한 변수
    "$glyph_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$button_text": "UI Test",
    // 오버라이드 가능한 변수
    "$toggle_property_bag": {
      // ???/??? ?
      "#panel_title": "Rainbow Pie UI Test"
    }
  },

  // ???/?? ??
  "uitest_tab_section": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "uitest_button_toggle",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_3_anim@rainbowpie_ui_common.text_label": {
          // 보여줄 글자
          "text": "Item Renderer Test"
        }
      },
      {
        // ???/?? ??
        "item_renderer_test_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 20 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "item_id@common.text_edit_box": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 5,
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 가로/세로 크기
                "size": [ 80, 20 ],
                // 오버라이드 가능한 변수
                "$text_box_name": "item_id_text_box",
                // 오버라이드 가능한 변수
                "$text_edit_text_control": "item_id_text",
                // 오버라이드 가능한 변수
                "$place_holder_text": "Item ID",
                // 끝에서 다시 처음으로 순환
                "focus_wrap_enabled": false,
                // ?? ?? ?
                "max_length": 32767
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "item_render@rainbowpie_ui_common.item_renderer": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 가로/세로 크기
                "size": [ 16, 16 ],
                // 기준점에서 이동하는 거리
                "offset": [ 80, 0 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "item_id_text",
                    // 계산식/참조 값
                    "source_property_name": "#item_name",
                    // 결과가 들어갈 속성
                    "target_property_name": "#output_text"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "((#output_text * 1) * 65536)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#item_id_aux"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "item_id_label@rainbowpie_ui_common.text_label": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 기준점에서 이동하는 거리
                "offset": [ 96, 0 ],
                // 가로/세로 크기
                "size": [ "default", "default" ],
                // 보여줄 글자
                "text": "#text",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "item_id_text",
                    // 계산식/참조 값
                    "source_property_name": "#item_name",
                    // 결과가 들어갈 속성
                    "target_property_name": "#output_text"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "('item_id_aux: ' + ((#output_text * 1) * 65536))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#text"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "item_renderer_test_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 20 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "item_id@common.text_edit_box": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 5,
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 가로/세로 크기
                "size": [ 80, 20 ],
                // 오버라이드 가능한 변수
                "$text_box_name": "item_id_text_box",
                // 오버라이드 가능한 변수
                "$text_edit_text_control": "item_aux_id_text",
                // 오버라이드 가능한 변수
                "$place_holder_text": "Item Aux ID",
                // 끝에서 다시 처음으로 순환
                "focus_wrap_enabled": false,
                // ?? ?? ?
                "max_length": 32767
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "item_render@rainbowpie_ui_common.item_renderer": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 가로/세로 크기
                "size": [ 16, 16 ],
                // 기준점에서 이동하는 거리
                "offset": [ 80, 0 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "item_aux_id_text",
                    // 계산식/참조 값
                    "source_property_name": "#item_name",
                    // 결과가 들어갈 속성
                    "target_property_name": "#output_text"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#output_text * 1)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#item_id_aux"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "item_id_label@rainbowpie_ui_common.text_label": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 기준점에서 이동하는 거리
                "offset": [ 96, 0 ],
                // 가로/세로 크기
                "size": [ "default", "default" ],
                // 보여줄 글자
                "text": "#text",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "item_aux_id_text",
                    // 계산식/참조 값
                    "source_property_name": "#item_name",
                    // 결과가 들어갈 속성
                    "target_property_name": "#output_text"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "('item_id: ' + ((#output_text * 1) / 65536))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#text"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "spacer_3": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_01_str@rainbowpie_ui_common.text_label": {
          // 보여줄 글자
          "text": "String Test"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "str_test_01@rainbowpie_ui_common.text_label": {
          // 오버라이드 가능한 변수
          "$var_1": "TEST STRING",
          // 보여줄 글자
          "text": "('This is a test string variable: %s, and this is end' * $var_1)"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "str_test_02@rainbowpie_ui_common.text_label": {
          // 오버라이드 가능한 변수
          "$var_1": "",
          // 보여줄 글자
          "text": "('test \u003d ')"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "str_test_03@rainbowpie_ui_common.text_label": {
          // 오버라이드 가능한 변수
          "$var_1": "ABCDEF0123456789",
          // 보여줄 글자
          "text": "('%.12s' * $var_1)"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "str_test_04@rainbowpie_ui_common.text_label": {
          // 오버라이드 가능한 변수
          "$var_1": "message:/time set 24000",
          // 보여줄 글자
          "text": "('%.17s' * $var_1)"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "str_test_05@rainbowpie_ui_common.text_label": {
          // 오버라이드 가능한 변수
          "$var_1": 114514,
          // 보여줄 글자
          "text": "('\"' + $var_1 + '\"')"
        }
      },
      // 比较最小数值 2x2 (4) (By DeepSeek AI)
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "str_test_06@rainbowpie_ui_common.text_label": {
          // 보여줄 글자
          "text": "#result_text",
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#a": 52,
            // ???/??? ?
            "#b": 64,
            // ???/??? ?
            "#c": 0,
            // ???/??? ?
            "#d": 32,
            // ???/??? ?
            "#result": 0
          },
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#a > 0) * #a + (#a < 1) * 9990)",
              // 결과가 들어갈 속성
              "target_property_name": "#adjusted_a"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#b > 0) * #b + (#b < 1) * 9990)",
              // 결과가 들어갈 속성
              "target_property_name": "#adjusted_b"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#c > 0) * #c + (#c < 1) * 9990)",
              // 결과가 들어갈 속성
              "target_property_name": "#adjusted_c"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#d > 0) * #d + (#d < 1) * 9990)",
              // 결과가 들어갈 속성
              "target_property_name": "#adjusted_d"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#adjusted_a < #adjusted_b) * #adjusted_a + (#adjusted_b < #adjusted_a) * #adjusted_b)",
              // 결과가 들어갈 속성
              "target_property_name": "#temp_1"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#temp_1 < #adjusted_c) * #temp_1 + (#adjusted_c < #temp_1) * #adjusted_c)",
              // 결과가 들어갈 속성
              "target_property_name": "#temp_2"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#temp_2 < #adjusted_d) * #temp_2 + (#adjusted_d < #temp_2) * #adjusted_d)",
              // 결과가 들어갈 속성
              "target_property_name": "#result"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('zz' + #result)",
              // 결과가 들어갈 속성
              "target_property_name": "#result_text"
            }
          ]
        }
      },
      // 比较最小数值 3x3 (9) (By DeepSeek AI)
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "str_test_07@rainbowpie_ui_common.text_label": {
          // 보여줄 글자
          "text": "#result_text",
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#a": 128,
            // ???/??? ?
            "#b": 0,
            // ???/??? ?
            "#c": 0,
            // ???/??? ?
            "#d": 0,
            // ???/??? ?
            "#e": 0,
            // ???/??? ?
            "#f": 0,
            // ???/??? ?
            "#g": 0,
            // ???/??? ?
            "#h": 0,
            // ???/??? ?
            "#i": 0,
            // ???/??? ?
            "#result": -1
          },
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#a > 0) * #a + (#a < 1) * 9990)",
              // 결과가 들어갈 속성
              "target_property_name": "#adjusted_a"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#b > 0) * #b + (#b < 1) * 9990)",
              // 결과가 들어갈 속성
              "target_property_name": "#adjusted_b"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#c > 0) * #c + (#c < 1) * 9990)",
              // 결과가 들어갈 속성
              "target_property_name": "#adjusted_c"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#d > 0) * #d + (#d < 1) * 9990)",
              // 결과가 들어갈 속성
              "target_property_name": "#adjusted_d"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#e > 0) * #e + (#e < 1) * 9990)",
              // 결과가 들어갈 속성
              "target_property_name": "#adjusted_e"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#f > 0) * #f + (#f < 1) * 9990)",
              // 결과가 들어갈 속성
              "target_property_name": "#adjusted_f"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#g > 0) * #g + (#g < 1) * 9990)",
              // 결과가 들어갈 속성
              "target_property_name": "#adjusted_g"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#h > 0) * #h + (#h < 1) * 9990)",
              // 결과가 들어갈 속성
              "target_property_name": "#adjusted_h"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#i > 0) * #i + (#i < 1) * 9990)",
              // 결과가 들어갈 속성
              "target_property_name": "#adjusted_i"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#adjusted_a < #adjusted_b) * #adjusted_a + (#adjusted_b < #adjusted_a) * #adjusted_b + (#adjusted_a = #adjusted_b) * #adjusted_a)",
              // 결과가 들어갈 속성
              "target_property_name": "#temp_1"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#temp_1 < #adjusted_c) * #temp_1 + (#adjusted_c < #temp_1) * #adjusted_c + (#temp_1 = #adjusted_c) * #temp_1)",
              // 결과가 들어갈 속성
              "target_property_name": "#temp_2"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#temp_2 < #adjusted_d) * #temp_2 + (#adjusted_d < #temp_2) * #adjusted_d + (#temp_2 = #adjusted_d) * #temp_2)",
              // 결과가 들어갈 속성
              "target_property_name": "#temp_3"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#temp_3 < #adjusted_e) * #temp_3 + (#adjusted_e < #temp_3) * #adjusted_e + (#temp_3 = #adjusted_e) * #temp_3)",
              // 결과가 들어갈 속성
              "target_property_name": "#temp_4"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#temp_4 < #adjusted_f) * #temp_4 + (#adjusted_f < #temp_4) * #adjusted_f + (#temp_4 = #adjusted_f) * #temp_4)",
              // 결과가 들어갈 속성
              "target_property_name": "#temp_5"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#temp_5 < #adjusted_g) * #temp_5 + (#adjusted_g < #temp_5) * #adjusted_g + (#temp_5 = #adjusted_g) * #temp_5)",
              // 결과가 들어갈 속성
              "target_property_name": "#temp_6"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#temp_6 < #adjusted_h) * #temp_6 + (#adjusted_h < #temp_6) * #adjusted_h + (#temp_6 = #adjusted_h) * #temp_6)",
              // 결과가 들어갈 속성
              "target_property_name": "#temp_7"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#temp_7 < #adjusted_i) * #temp_7 + (#adjusted_i < #temp_7) * #adjusted_i + (#temp_7 = #adjusted_i) * #temp_7)",
              // 결과가 들어갈 속성
              "target_property_name": "#result"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('zz' + #result)",
              // 결과가 들어갈 속성
              "target_property_name": "#result_text"
            }
          ]
        }
      },
      // 判断奇数偶数
      // 0 = 奇数
      // 1 = 偶数
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "str_test_08@rainbowpie_ui_common.text_label": {
          // 오버라이드 가능한 변수
          "$var_1": 5,
          // 오버라이드 가능한 변수
          "$var_2": "($var_1 - 2 * ($var_1 / 2))",
          // 보여줄 글자
          "text": "('\"' + $var_2 + '\"')"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "str_test_09@rainbowpie_ui_common.text_label": {
          // 오버라이드 가능한 변수
          "$var_1": false,
          // 오버라이드 가능한 변수
          "$var_2": true,
          // 보여줄 글자
          "text": "('\"' + $var_1 + '\"')"
        }
      },
      {
        // ???/?? ??
        "spacer_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_1_anim@rainbowpie_ui_common.text_label": {
          // 보여줄 글자
          "text": "UI Animation Test"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_linear@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "linear"
        }
      },
      {
        // ???/?? ??
        "spacer_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_spring@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "spring"
        }
      },
      {
        // ???/?? ??
        "spacer_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_quad@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_quad"
        }
      },
      {
        // ???/?? ??
        "spacer_3": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_out_quad@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "out_quad"
        }
      },
      {
        // ???/?? ??
        "spacer_4": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_out_quad@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_out_quad"
        }
      },
      {
        // ???/?? ??
        "spacer_5": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_cubic@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_cubic"
        }
      },
      {
        // ???/?? ??
        "spacer_6": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_out_cubic@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "out_cubic"
        }
      },
      {
        // ???/?? ??
        "spacer_7": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_out_cubic@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_out_cubic"
        }
      },
      {
        // ???/?? ??
        "spacer_8": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_quart@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_quart"
        }
      },
      {
        // ???/?? ??
        "spacer_9": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_out_quart@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "out_quart"
        }
      },
      {
        // ???/?? ??
        "spacer_10": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_out_quart@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_out_quart"
        }
      },
      {
        // ???/?? ??
        "spacer_11": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_quint@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_quint"
        }
      },
      {
        // ???/?? ??
        "spacer_12": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_out_quint@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "out_quint"
        }
      },
      {
        // ???/?? ??
        "spacer_13": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_out_quint@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_out_quint"
        }
      },
      {
        // ???/?? ??
        "spacer_14": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_sine@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_sine"
        }
      },
      {
        // ???/?? ??
        "spacer_15": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_out_sine@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "out_sine"
        }
      },
      {
        // ???/?? ??
        "spacer_16": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_out_sine@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_out_sine"
        }
      },
      {
        // ???/?? ??
        "spacer_17": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_expo@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_expo"
        }
      },
      {
        // ???/?? ??
        "spacer_18": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_out_expo@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "out_expo"
        }
      },
      {
        // ???/?? ??
        "spacer_19": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_out_expo@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_out_expo"
        }
      },
      {
        // ???/?? ??
        "spacer_20": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_circ@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_circ"
        }
      },
      {
        // ???/?? ??
        "spacer_21": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_out_circ@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "out_circ"
        }
      },
      {
        // ???/?? ??
        "spacer_22": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_out_circ@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_out_circ"
        }
      },
      {
        // ???/?? ??
        "spacer_23": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_bounce@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_bounce"
        }
      },
      {
        // ???/?? ??
        "spacer_24": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_out_bounce@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "out_bounce"
        }
      },
      {
        // ???/?? ??
        "spacer_25": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_out_bounce@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_out_bounce"
        }
      },
      {
        // ???/?? ??
        "spacer_26": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_back@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_back"
        }
      },
      {
        // ???/?? ??
        "spacer_27": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_out_back@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "out_back"
        }
      },
      {
        // ???/?? ??
        "spacer_28": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_out_back@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_out_back"
        }
      },
      {
        // ???/?? ??
        "spacer_29": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_elastic@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_elastic"
        }
      },
      {
        // ???/?? ??
        "spacer_30": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_out_elastic@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "out_elastic"
        }
      },
      {
        // ???/?? ??
        "spacer_31": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "anim_test_in_out_elastic@rainbowpieui_general_section.anim_test": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_animtest_easing": "in_out_elastic"
        }
      },
      {
        // ???/?? ??
        "spacer_32": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      }
    ]
  },

  // ???/?? ??
  "anim_test": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_animtest_easing|default": "linear",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "anim_test_buttons": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%", 20 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "play@settings_common.action_button": {
                // 가로/세로 크기
                "size": [ 50, 20 ],
                // 오버라이드 가능한 변수
                "$pressed_button_name": "('rainbowpieui.settings_uitest_anim_play_' + $rainbowpie_localui_animtest_easing)",
                // 오버라이드 가능한 변수
                "$button_text": "PLAY"
              }
            },
            {
              // ???/?? ??
              "spacer_0": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 1, 1 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "reset@settings_common.action_button": {
                // 가로/세로 크기
                "size": [ 50, 20 ],
                // 오버라이드 가능한 변수
                "$pressed_button_name": "('rainbowpieui.settings_uitest_anim_reset_' + $rainbowpie_localui_animtest_easing)",
                // 오버라이드 가능한 변수
                "$button_text": "RESET"
              }
            },
            {
              // ???/?? ??
              "spacer_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 2, 1 ]
              }
            },
            {
              // ???/?? ??
              "title_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "fill", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title@rainbowpie_ui_common.text_label": {
                      // 가로/세로 크기
                      "size": [ "default", "default" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 보여줄 글자
                      "text": "$rainbowpie_localui_animtest_easing",
                      // ?? ?? ??
                      "font_scale_factor": 1.2,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "anim_test": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": [ "100%", 16 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "dot": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": [ 16, 16 ],
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_button_background_hover_color",
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // ????? ?? ?
                "animation_reset_name": "('rainbowpieui.settings_uitest_anim_reset_' + $rainbowpie_localui_animtest_easing)",
                // 애니메이션 목록
                "anims": [
                  "@rainbowpieui_general_section.ui_test_animation"
                ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "title@rainbowpie_ui_common.text_label_notheme": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 보여줄 글자
                "text": "$rainbowpie_localui_animtest_easing",
                // ?? (R,G,B,A)
                "color": [ 0.7, 0.7, 0.7 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "ui_test_animation": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_localui_animtest_easing",
    // 걸리는 시간(초)
    "duration": 2,
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ "100% - 16px", 0 ],
    // ?? ??
    "play_event": "('rainbowpieui.settings_uitest_anim_play_' + $rainbowpie_localui_animtest_easing)"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "worldtown_radio_visuals_unchecked@worldtown_radio_visuals": {
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "worldtown_radio_visuals_checked@worldtown_radio_visuals": {
    // 오버라이드 가능한 변수
    "$selected": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "worldtown_radio_visuals_unchecked_locked@worldtown_radio_visuals": {
    // 오버라이드 가능한 변수
    "$alpha": 0.5
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "worldtown_radio_visuals_checked_locked@worldtown_radio_visuals": {
    // 오버라이드 가능한 변수
    "$alpha": 0.5,
    // 오버라이드 가능한 변수
    "$selected": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "worldtown_radio_visuals_unchecked_hover@worldtown_radio_visuals": {
    // 오버라이드 가능한 변수
    "$hovered": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "worldtown_radio_visuals_checked_hover@worldtown_radio_visuals": {
    // 오버라이드 가능한 변수
    "$hovered": true
  },

  // ???/?? ??
  "worldtown_radio_visuals": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 16 ],
    // 오버라이드 가능한 변수
    "$alpha|default": 1.0,
    // 오버라이드 가능한 변수
    "$radio_label_bindings|default": [],
    // 오버라이드 가능한 변수
    "$radio_label_color|default": "$main_header_text_color",
    // 오버라이드 가능한 변수
    "$radio_label_font_type|default": "default",
    // 오버라이드 가능한 변수
    "$no_label|default": false,
    // 오버라이드 가능한 변수
    "$selected|default": false,
    // 오버라이드 가능한 변수
    "$hovered|default": false,

    // Must be start with | and end with |
    "$worldtown_supported_languages": "|English (United States)|English (United Kingdom)|Deutsch (Deutschland)|Español (España)|Español (México)|Français (France)|Français (Canada)|Italiano (Italia)|日本語 (日本)|한국어 (대한민국)|Português (Brasil)|Português (Portugal)|Русский (Россия)|中文(简体)|中文(繁體)|Nederlands (Nederland)|Български (България)|Čeština (Česko)|Dansk (Danmark)|Ελληνικά (Ελλάδα)|Suomi (Suomi)|Magyar (Magyarország)|Indonesia (Indonesia)|Norsk bokmål (Norge)|Polski (Polska)|Slovenčina (Slovensko)|Svenska (Sverige)|Türkçe (Türkiye)|Українська (Україна)|Tiếng Việt (Việt Nam)|",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "radio_btbar": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $selected and not $hovered)",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 가로/세로 크기
          "size": [ 2, "100% + 1px" ],
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_this_btbar_color",
          // ???
          "alpha": "$rainbowpie_localui_this_btbar_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8,
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "((not $selected) and $hovered)",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_this_btbar_color": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_color",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_this_btbar_alpha": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_alpha"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "($selected and $hovered)",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_this_btbar_color": "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_color",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_this_btbar_alpha": "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_alpha"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "($selected)",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_this_btbar_color": "$rainbowpie_ui_theme_toggle_background_checked_default_btbar_color",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_this_btbar_alpha": "$rainbowpie_ui_theme_toggle_background_checked_default_btbar_alpha"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "radio_background": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ "100%", "100% + 1px" ],
          // 완전히 제거(공간도 없음)
          "ignored": "(not $selected and not $hovered)",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_this_background_color",
          // ???
          "alpha": "$rainbowpie_localui_this_background_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "((not $selected) and $hovered)",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_this_background_color": [ 0.011, 0.011, 0.011 ],
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_this_background_alpha": 0.5
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "($selected and $hovered)",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_this_background_color": [ 0.011, 0.011, 0.011 ],
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_this_background_alpha": 0.4
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "($selected)",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_this_background_color": [ 0.011, 0.011, 0.011 ],
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_this_background_alpha": 0.4
            }
          ]
        }
      },
      {
        // ???/?? ??
        "worldtown_flag": {
          // 이미지 표시
          "type": "image",
          // ???
          "alpha": "$alpha",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 4, 0 ],
          // 가로/세로 크기
          "size": [ 20, 20 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#language_description",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // ?? ???
              "binding_condition": "once",
              // 목록 이름
              "binding_collection_name": "languages"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "($rainbowpie_ui_path_home + '/flags/worldtown/' + #language_description)",
              // 결과가 들어갈 속성
              "target_property_name": "#texture"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('|' + #language_description + '|')",
              // 결과가 들어갈 속성
              "target_property_name": "#language_description_formatted"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (($worldtown_supported_languages - #language_description_formatted) = $worldtown_supported_languages))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "worldtown_flag_unknown": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "($rainbowpie_ui_path_home + '/flags/worldtown/unknown')",
          // ???
          "alpha": "$alpha",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 4, 0 ],
          // 가로/세로 크기
          "size": [ 20, 20 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#language_description",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // ?? ???
              "binding_condition": "once",
              // 목록 이름
              "binding_collection_name": "languages"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('|' + #language_description + '|')",
              // 결과가 들어갈 속성
              "target_property_name": "#language_description_formatted"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(($worldtown_supported_languages - #language_description_formatted) = $worldtown_supported_languages)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "radio_label": {
          // 완전히 제거(공간도 없음)
          "ignored": "($no_label)",
          // 글자 표시
          "type": "label",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 보여줄 글자
          "text": "#language_description",
          // ??
          "font_type": "$rainbowpie_ui_theme_global_font_name",
          // ?? ?? ?
          "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
          // ?? (R,G,B,A)
          "color": "$radio_label_color",
          // 기준점에서 이동하는 거리
          "offset": [ 26, 0 ],
          // 가로/세로 크기
          "size": [ "100% - 16px", "default" ],
          // ???
          "alpha": "$alpha",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#language_description",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // ?? ???
              "binding_condition": "once",
              // 목록 이름
              "binding_collection_name": "languages"
            }
          ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "worldtown_language_grid_item@settings_common.radio_with_label": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpieui_general_section.worldtown_radio_visuals_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpieui_general_section.worldtown_radio_visuals_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpieui_general_section.worldtown_radio_visuals_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpieui_general_section.worldtown_radio_visuals_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpieui_general_section.worldtown_radio_visuals_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpieui_general_section.worldtown_radio_visuals_unchecked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpieui_general_section.worldtown_radio_visuals_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpieui_general_section.worldtown_radio_visuals_checked_locked",

    // 오버라이드 가능한 변수
    "$toggle_state_binding_name": "#language_initial_selected",
    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_binding_type": "collection",
    // 오버라이드 가능한 변수
    "$toggle_name": "languages",
    // 오버라이드 가능한 변수
    "$toggle_grid_collection_name": "languages",
    // 오버라이드 가능한 변수
    "$option_enabled_binding_name": "",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#default_focus_precedence",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // ?? ???
        "binding_condition": "visible",
        // 목록 이름
        "binding_collection_name": "languages"
      }
    ]
  }
}

grindstone_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: grindstone_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_grindstone",

  // 다른 템플릿을 가져와서 확장(상속)
  "grindstone_root_panel@common.root_panel": {
    // 가로/세로 크기
    "size": [ 168, 161 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "inventory_selected_icon_button@common.inventory_selected_icon_button": {} },
      { "gamepad_cursor@common.gamepad_cursor_button": {} },
      { "inventory_take_progress_icon_button@common.inventory_take_progress_icon_button": {} },
      {
        // ???/?? ??
        "inventory_ui_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 애니메이션 목록
          "anims": [
            "@rainbowpie_ui_animations.container_panel_exit_animation_push",
            "@rainbowpie_ui_animations.container_panel_exit_animation_pop",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_push",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_pop"
          ],
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "grindstone_background_icon@rainbowpie_ui_inventory.background_icon": {
                // 가로/세로 크기
                "size": "$rainbowpie_ui_theme_inventory_bgicon_grindstone_size",
                // 기준점에서 이동하는 거리
                "offset": "$rainbowpie_ui_theme_inventory_bgicon_grindstone_offset",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$rainbowpie_ui_theme_inventory_bgicon_grindstone_anchor",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$rainbowpie_ui_theme_inventory_bgicon_grindstone_anchor",
                // 사용할 이미지 경로
                "texture": "$rainbowpie_ui_theme_inventory_bgicon_grindstone_texture",
                // ???
                "alpha": "$rainbowpie_ui_theme_inventory_bgicon_grindstone_alpha",
                // ?? ??
                "fill": "$rainbowpie_ui_theme_inventory_bgicon_grindstone_fill"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background_icon@rainbowpie_ui_inventory.background_icon": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory_header@rainbowpie_ui_inventory.header": {
                // 가로/세로 크기
                "size": [ "100%", "14.28571428571429%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title": "container.repairAndDisenchant",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border1_size": [ "2.380952380952381%", 0 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border2_size": [ "2.380952380952381%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "common_panel@common.common_panel": {
                // 오버라이드 가능한 변수
                "$dialog_background": "rainbowpie_ui_common.inventory_background",
                // 오버라이드 가능한 변수
                "$show_close_button": false,
                // 가로/세로 크기
                "size": [ "100%", "100% - 14.28571428571429%" ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle"
              }
            },
            {
              // ???/?? ??
              "top_half_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "33.54037267080745%" ], // 162x54
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-50.31055900621118%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "grindstone_slots_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "55.55555555555556%", "100%" ], // 90x54 (56)
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "grindstone_middle_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 가로/세로 크기
                            "size": [ "20%", "75.92592592592593%" ], // 18x41
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "input_item_slot@rainbowpie_ui_inventory_and_container.container_item": {
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_middle",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_middle",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "43.90243902439024%" ],
                                  // 기준점에서 이동하는 거리
                                  "offset": [ 0, "2.439024390243902%" ],
                                  // 오버라이드 가능한 변수
                                  "$item_collection_name": "grindstone_input_items",

                                  // 오버라이드 가능한 변수
                                  "$focus_id_binding_type": "none",
                                  // 오버라이드 가능한 변수
                                  "$focus_id": "grindstone_input",

                                  // 오버라이드 가능한 변수
                                  "$focus_override_down_binding_type": "none",
                                  // 오버라이드 가능한 변수
                                  "$focus_override_down": "grindstone_additional",

                                  // 오버라이드 가능한 변수
                                  "$focus_override_right_binding_type": "none",
                                  // 오버라이드 가능한 변수
                                  "$focus_override_right": "grindstone_result"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "additional_item_slot@rainbowpie_ui_inventory_and_container.container_item": {
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "bottom_middle",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "bottom_middle",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "43.90243902439024%" ],
                                  // 기준점에서 이동하는 거리
                                  "offset": [ 0, "-2.439024390243902%" ],
                                  // 오버라이드 가능한 변수
                                  "$item_collection_name": "grindstone_additional_items",

                                  // 오버라이드 가능한 변수
                                  "$focus_id_binding_type": "none",
                                  // 오버라이드 가능한 변수
                                  "$focus_id": "grindstone_additional",

                                  // 오버라이드 가능한 변수
                                  "$focus_override_up_binding_type": "none",
                                  // 오버라이드 가능한 변수
                                  "$focus_override_up": "grindstone_input",

                                  // 오버라이드 가능한 변수
                                  "$focus_override_right_binding_type": "none",
                                  // 오버라이드 가능한 변수
                                  "$focus_override_right": "grindstone_result"
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "yields": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "center",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "center",
                            // 가로/세로 크기
                            "size": [ "24.44444444444444%", "27.77777777777778%" ], // 22x15
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "arrow_icon@grindstone.arrow_icon": {
                                  // 가로/세로 크기
                                  "size": [ "100%", "100%" ],
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 3
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "cross_out_icon@grindstone.cross_out_icon": {
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 4
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "result_item_slot@rainbowpie_ui_inventory_and_container.container_item": {
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "right_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "right_middle",
                            // 가로/세로 크기
                            "size": [ "100%y", "33.33333333333333%" ],
                            // 오버라이드 가능한 변수
                            "$item_collection_name": "grindstone_result_items",
                            // 오버라이드 가능한 변수
                            "$button_ref": "grindstone.grindstone_output_slot_button",

                            // 오버라이드 가능한 변수
                            "$focus_id_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_id": "grindstone_result",

                            // 오버라이드 가능한 변수
                            "$focus_override_left_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_left": "grindstone_additional"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory@rainbowpie_ui_inventory_and_container.inventory_panel_bottom_half": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "33.54037267080745%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-14.90683229813665%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar@rainbowpie_ui_inventory_and_container.hotbar_grid_template": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "11.18012422360248%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-1.863354037267081%" ]
              }
            }
          ]
        }
      }
    ]
  }
}

horse_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: horse_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_horse",

  // 다른 템플릿을 가져와서 확장(상속)
  "equip_container_item@rainbowpie_ui_inventory_and_container.container_item": {
    // 가로/세로 크기
    "size": [ "100%", "100%x" ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "container_item@rainbowpie_ui_inventory_and_container.container_item": {
    // 가로/세로 크기
    "size": [ "100%y", "33.33333333333333%" ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "horse_root_panel@common.root_panel": {
    // 가로/세로 크기
    "size": [ 168, 161 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "inventory_selected_icon_button@common.inventory_selected_icon_button": {} },
      { "gamepad_cursor@common.gamepad_cursor_button": {} },
      { "inventory_take_progress_icon_button@common.inventory_take_progress_icon_button": {} },
      {
        // ???/?? ??
        "inventory_ui_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 애니메이션 목록
          "anims": [
            "@rainbowpie_ui_animations.container_panel_exit_animation_push",
            "@rainbowpie_ui_animations.container_panel_exit_animation_pop",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_push",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_pop"
          ],
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background_icon@rainbowpie_ui_inventory.background_icon": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory_header@rainbowpie_ui_inventory.header": {
                // 가로/세로 크기
                "size": [ "100%", "14.28571428571429%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title": "$container_title",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border1_size": [ "2.380952380952381%", 0 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border2_size": [ "2.380952380952381%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "common_panel@common.common_panel": {
                // 오버라이드 가능한 변수
                "$dialog_background": "rainbowpie_ui_common.inventory_background",
                // 오버라이드 가능한 변수
                "$show_close_button": false,
                // 가로/세로 크기
                "size": [ "100%", "100% - 14.28571428571429%" ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle"
              }
            },
            {
              // ???/?? ??
              "top_half_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "33.54037267080745%" ], // 162x54
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-50.31055900621118%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "equip_grid": {
                      // 격자 컨테이너: 칸칸이 배치
                      "type": "grid",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 가로/세로 크기
                      "size": [ "11.11111111111111%", "66.66666666666667%" ],
                      // 목록 이름
                      "collection_name": "horse_equip_items",
                      // ??? ?? ?
                      "grid_item_template": "rainbowpieui_horse.equip_container_item",
                      // ??? ?? ?
                      "grid_dimension_binding": "#equip_grid_dimensions",
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "horse_equip_items",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#equip_grid_dimensions"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "saddle@horse.saddle_image": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 가로/세로 크기
                      "size": [ "100%y", "29.62962962962963%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ "6.25%y", "1.851851851851852%" ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#has_saddle_slot",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "armor_0@horse.armor_image": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 가로/세로 크기
                      "size": [ "100%y", "29.62962962962963%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ "6.25%y", "1.851851851851852%" ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#has_only_armor_slot",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "carpet_0@horse.carpet_image": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 가로/세로 크기
                      "size": [ "100%y", "29.62962962962963%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ "6.25%y", "1.851851851851852%" ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#has_only_carpet_slot",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "armor_1@horse.armor_image": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 가로/세로 크기
                      "size": [ "100%y", "29.62962962962963%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ "6.25%y", "35.18518518518519%" ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#has_armor_and_saddle_slot",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "carpet_1@horse.carpet_image": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 가로/세로 크기
                      "size": [ "100%y", "29.62962962962963%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ "6.25%y", "35.18518518518519%" ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#has_carpet_and_saddle_slot",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "renderer@horse.horse_renderer": {
                      // 가로/세로 크기
                      "size": [ "100%y", "100%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ "11.11111111111111%", 0 ]
                    }
                  },
                  {
                    // ???/?? ??
                    "inv_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 기준점에서 이동하는 거리
                      "offset": [ "44.44444444444444%", 0 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "inv_grid": {
                            // 격자 컨테이너: 칸칸이 배치
                            "type": "grid",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_left",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_left",
                            // 가로/세로 크기
                            "size": [ "100%c", "100%" ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 3,
                            // 목록 이름
                            "collection_name": "container_items",
                            // ??? ?? ?
                            "grid_item_template": "rainbowpieui_horse.container_item",
                            // ??? ?? ?
                            "grid_dimension_binding": "#inv_grid_dimensions",
                            // 오버라이드 가능한 변수
                            "$item_collection_name": "container_items",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#inv_grid_dimensions"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory@rainbowpie_ui_inventory_and_container.inventory_panel_bottom_half": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "33.54037267080745%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-14.90683229813665%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar@rainbowpie_ui_inventory_and_container.hotbar_grid_template": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "11.18012422360248%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-1.863354037267081%" ]
              }
            }
          ]
        }
      }
    ]
  }
}

host_options_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: host_options_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_host_options",

  // ???/?? ??
  "color_picker": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 90 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_64981341)",
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#message_text_box_content"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('message:' + #message_text_box_content)",
        // 결과가 들어갈 속성
        "target_property_name": "#formatted_message_text"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('%.14s' * #formatted_message_text) = 'message:.color')",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%cm" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "padding_btn1n3": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 52, 0 ]
              }
            },
            {
              // ???/?? ??
              "padding_btn2": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 26, 0 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#cheats_on",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_btnTabPrev": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 104, 0 ],
                // 완전히 제거(공간도 없음)
                "ignored": "(not $touch)"
              }
            },
            {
              // ???/?? ??
              "panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%cm", "100%cm" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "background@rainbowpie_ui_common.dialog_background": {
                      // 가로/세로 크기
                      "size": [ 120, 90 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "scrolling_panel@common.scrolling_panel": {
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_scrollbar_enabled": true,
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100% - 2px", "100%" ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "center",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "center",
                            // 기준점에서 이동하는 거리
                            "offset": [ 0, 0 ],
                            // 오버라이드 가능한 변수
                            "$scrolling_content": "rainbowpieui_host_options.color_picker_stack",
                            // 오버라이드 가능한 변수
                            "$scroll_size": [ 5, "100%-4px" ],
                            // 오버라이드 가능한 변수
                            "$scroll_bar_right_padding_size": [ 0, 0 ],
                            // 오버라이드 가능한 변수
                            "$scroll_bar_left_padding_size": [ 0, 0 ],
                            // 오버라이드 가능한 변수
                            "$show_background": false,
                            // 오버라이드 가능한 변수
                            "$always_handle_scrolling": false
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "a_song_about_life": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 120, 90 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 5 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 보이기/숨기기(공간 유지)
                      "visible": false,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 12,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#message_text_box_content"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "('message:' + #message_text_box_content)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#formatted_message_text"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#formatted_message_text = 'message:.color sing a song about life')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#subcmd_0"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#formatted_message_text = 'message:.color vylet pony')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#subcmd_1"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#formatted_message_text = 'message:.color a song about life')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#subcmd_2"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#formatted_message_text = 'message:.color antonymph')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#subcmd_3"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#formatted_message_text = 'message:.color antonymph of the internet')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#subcmd_4"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#subcmd_0 or #subcmd_1 or #subcmd_2 or #subcmd_3 or #subcmd_4)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "text@rainbowpie_ui_common.text_label": {
                            // 보여줄 글자
                            "text": "§csing a song about life§r\n§6sing a song about life§r\n§esing a song about life§r\n§asing a song about life§r\n§bsing a song about life§r\n§5sing a song about life§r"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "color_picker_stack": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "padding_top": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 0, 2 ]
        }
      },
      {
        // ???/?? ??
        "title_text_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "title_text@rainbowpie_ui_common.text_label": {
                // 가로/세로 크기
                "size": [ "100% - 4px", "default" ],
                // 보여줄 글자
                "text": "rainbowpie.ui.host_options.color_picker",
                // ?? ??
                "text_alignment": "left",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "test@rainbowpieui_host_options.color_picker_item": {
          // 완전히 제거(공간도 없음)
          "ignored": true
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "black@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$0_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§0",
          // 오버라이드 가능한 변수
          "$color_picker_text": "color.black"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dark_blue@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$1_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§1",
          // 오버라이드 가능한 변수
          "$color_picker_text": "color.dark_blue"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dark_green@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$2_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§2",
          // 오버라이드 가능한 변수
          "$color_picker_text": "color.dark_green"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dark_aqua@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$3_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§3",
          // 오버라이드 가능한 변수
          "$color_picker_text": "color.dark_aqua"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dark_red@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$4_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§4",
          // 오버라이드 가능한 변수
          "$color_picker_text": "color.dark_red"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dark_purple@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$5_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§5",
          // 오버라이드 가능한 변수
          "$color_picker_text": "color.dark_purple"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "gold@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$6_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§6",
          // 오버라이드 가능한 변수
          "$color_picker_text": "color.gold"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "gray@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$7_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§7",
          // 오버라이드 가능한 변수
          "$color_picker_text": "color.gray"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dark_gray@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$8_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§8",
          // 오버라이드 가능한 변수
          "$color_picker_text": "color.dark_gray"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "blue@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$9_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§9",
          // 오버라이드 가능한 변수
          "$color_picker_text": "color.blue"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "green@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$a_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§a",
          // 오버라이드 가능한 변수
          "$color_picker_text": "color.green"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "aqua@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$b_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§b",
          // 오버라이드 가능한 변수
          "$color_picker_text": "color.aqua"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "red@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$c_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§c",
          // 오버라이드 가능한 변수
          "$color_picker_text": "color.red"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "light_purple@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$d_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§d",
          // 오버라이드 가능한 변수
          "$color_picker_text": "color.light_purple"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "yellow@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$e_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§e",
          // 오버라이드 가능한 변수
          "$color_picker_text": "color.yellow"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "white@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$f_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§f",
          // 오버라이드 가능한 변수
          "$color_picker_text": "color.white"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "minecoin_gold@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$coin_color",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§g",
          // 오버라이드 가능한 변수
          "$color_picker_text": "accessibility.minecoin"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "material_quartz@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$material_quartz_color",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§h",
          // 오버라이드 가능한 변수
          "$color_picker_text": "trim_material.quartz.name"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "material_iron@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$material_iron_color",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§i",
          // 오버라이드 가능한 변수
          "$color_picker_text": "trim_material.iron.name"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "material_netherite@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$material_netherite_color",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§j",
          // 오버라이드 가능한 변수
          "$color_picker_text": "trim_material.netherite.name"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "material_redstone@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$material_redstone_color",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§m",
          // 오버라이드 가능한 변수
          "$color_picker_text": "trim_material.redstone.name"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "material_copper@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$material_copper_color",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§n",
          // 오버라이드 가능한 변수
          "$color_picker_text": "trim_material.copper.name"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "material_gold@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$material_gold_color",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§p",
          // 오버라이드 가능한 변수
          "$color_picker_text": "trim_material.gold.name"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "material_emerald@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$material_emerald_color",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§q",
          // 오버라이드 가능한 변수
          "$color_picker_text": "trim_material.emerald.name"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "material_diamond@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$material_diamond_color",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§s",
          // 오버라이드 가능한 변수
          "$color_picker_text": "trim_material.diamond.name"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "material_lapis@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$material_lapis_color",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§t",
          // 오버라이드 가능한 변수
          "$color_picker_text": "trim_material.lapis.name"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "material_amethyst@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$material_amethyst_color",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§u",
          // 오버라이드 가능한 변수
          "$color_picker_text": "trim_material.amethyst.name"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "material_resin@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$material_resin_color",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§v",
          // 오버라이드 가능한 변수
          "$color_picker_text": "trim_material.resin.name"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "obfuscated@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$f_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§k",
          // 오버라이드 가능한 변수
          "$color_picker_text": "§kobfuscated"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "bold@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$f_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§l",
          // 오버라이드 가능한 변수
          "$color_picker_text": "§lbold"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "italic@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$f_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§o",
          // 오버라이드 가능한 변수
          "$color_picker_text": "§oitalic"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "reset@rainbowpieui_host_options.color_picker_item": {
          // 오버라이드 가능한 변수
          "$color_picker_color": "$f_color_format",
          // 오버라이드 가능한 변수
          "$color_picker_code": "§r",
          // 오버라이드 가능한 변수
          "$color_picker_text": "reset"
        }
      }
    ]
  },

  // ???/?? ??
  "color_picker_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 19 ],
    // 오버라이드 가능한 변수
    "$color_picker_color|default": [ 1.0, 1.0, 0.0 ],
    // 오버라이드 가능한 변수
    "$color_picker_code|default": "default_code",
    // 오버라이드 가능한 변수
    "$color_picker_text|default": "Default Color",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#message_text_box_content"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('message:' + #message_text_box_content)",
        // 결과가 들어갈 속성
        "target_property_name": "#formatted_message_text"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('%.15s' * #formatted_message_text) = 'message:.color ')",
        // 결과가 들어갈 속성
        "target_property_name": "#searching_code"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#formatted_message_text - ('%.15s' * #formatted_message_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#search_text"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((not #searching_code) or (#searching_code and (($color_picker_code - '§') = #search_text)))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@rainbowpie_ui_common.text_background": {
          // 가로/세로 크기
          "size": [ "100%", 18 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "color_picker_item_panel@rainbowpie_ui_common.editable_label": {
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // ??? ?? ?
                "text_box_name": "('color_picker_' + $color_picker_code)",
                // ??? ?? ?
                "text_control": "code_display_text",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "color_text_line": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 가로/세로 크기
                      "size": [ "100%", 10 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "padding_0": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 2, 0 ]
                          }
                        },
                        {
                          // ???/?? ??
                          "color_preview_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%c", "100%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "color_preview": {
                                  // 이미지 표시
                                  "type": "image",
                                  // 가로/세로 크기
                                  "size": [ 14, 14 ],
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "center",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "center",
                                  // 사용할 이미지 경로
                                  "texture": "textures/ui/White",
                                  // ?? (R,G,B,A)
                                  "color": "$color_picker_color",
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 1
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "padding_1": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 2, 0 ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "color_text@rainbowpie_ui_common.text_label_notheme": {
                            // 보여줄 글자
                            "text": "$color_picker_text",
                            // ?? (R,G,B,A)
                            "color": "$color_picker_color",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 2
                          }
                        },
                        {
                          // ???/?? ??
                          "padding_2": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 2, 0 ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "code_display_text@rainbowpie_ui_common.text_label_notheme": {
                            // 보여줄 글자
                            "text": "$color_picker_code",
                            // 가로/세로 크기
                            "size": [ "default", "default" ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 8
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "tip_text@rainbowpie_ui_common.text_label_notheme": {
                // 보여줄 글자
                "text": "rainbowpie.ui.host_options.color_picker.tip",
                // ?? (R,G,B,A)
                "color": [ 0.5, 0.5, 0.5 ],
                // 기준점에서 이동하는 거리
                "offset": [ -2, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "right_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "right_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "independent_command_helper": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 90 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_fb3b5106)",
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#message_text_box_content"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('message:' + #message_text_box_content)",
        // 결과가 들어갈 속성
        "target_property_name": "#formatted_message_text"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('%.9s' * #formatted_message_text) = 'message:.')",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%cm" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "padding_btn1n3": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 52, 0 ]
              }
            },
            {
              // ???/?? ??
              "padding_btn2": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 26, 0 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#cheats_on",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_btnTabPrev": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 104, 0 ],
                // 완전히 제거(공간도 없음)
                "ignored": "(not $touch)"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "command_helper@rainbowpieui_host_options.command_helper": {}
            }
          ]
        }
      }

    ]
  },

  // ???/?? ??
  "command_helper": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@rainbowpie_ui_common.dialog_background": {
          // 가로/세로 크기
          "size": [ "100%c", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "cmd_stack": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 가로/세로 크기
                "size": [ "100%cm", "100%c" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "color@rainbowpieui_host_options.command_helper_item": {
                      // 오버라이드 가능한 변수
                      "$command": "color",
                      // 오버라이드 가능한 변수
                      "$usage": "<colorCode>"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "time@rainbowpieui_host_options.command_helper_item": {
                      // 오버라이드 가능한 변수
                      "$command": "time"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "command_helper_item@rainbowpie_ui_common.text_label_notheme": {
    // 가로/세로 크기
    "size": [ "default", "default" ],
    // 오버라이드 가능한 변수
    "$command|default": "cmd",
    // 오버라이드 가능한 변수
    "$usage|default": "",
    // 보여줄 글자
    "text": "('.' + $command + ' ' + $usage)",
    // 보이기/숨기기(공간 유지)
    "visible": true,
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#message_text_box_content"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('message:' + #message_text_box_content)",
        // 결과가 들어갈 속성
        "target_property_name": "#formatted_message_text"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#formatted_message_text - 'message:.')",
        // 결과가 들어갈 속성
        "target_property_name": "#cmd_text"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(((not (#cmd_text = $command)) and (not (($command - #cmd_text) = $command))) or (#cmd_text = ''))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "host_sub_command_button": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 30 ],

    // 오버라이드 가능한 변수
    "$button_sub_command": "sub_command",

    // 오버라이드 가능한 변수
    "$button_text": "button_text",

    // 오버라이드 가능한 변수
    "$button_glyph_anchor_from": "left_middle",
    // 오버라이드 가능한 변수
    "$button_glyph_anchor_to": "left_middle",
    // 오버라이드 가능한 변수
    "$button_label_offset": [ 30, 0 ],

    // 오버라이드 가능한 변수
    "$button_glyph_texture": "",

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "host_option_banner@host_options.main_dark_button": {
          // 오버라이드 가능한 변수
          "$glyph_size": [ "100%y", "100%" ],
          // 오버라이드 가능한 변수
          "$button_content_offset_glyph": [ 0, 0 ],
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.sub_command",
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#sub_command": "$button_sub_command"
          }
        }
      }
    ]
  },

  // ???/?? ??
  "advanced_host_friends_tab": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_host_options_advanced)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "all_players@rainbowpieui_host_options.host_sub_command_button": {
          // 오버라이드 가능한 변수
          "$button_sub_command": "@a",
          // 오버라이드 가능한 변수
          "$button_text": "commands.autocomplete.a"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "all_entities@rainbowpieui_host_options.host_sub_command_button": {
          // 오버라이드 가능한 변수
          "$button_sub_command": "@e",
          // 오버라이드 가능한 변수
          "$button_text": "commands.autocomplete.e"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "closest_player@rainbowpieui_host_options.host_sub_command_button": {
          // 오버라이드 가능한 변수
          "$button_sub_command": "@p",
          // 오버라이드 가능한 변수
          "$button_text": "commands.autocomplete.p"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "random_player@rainbowpieui_host_options.host_sub_command_button": {
          // 오버라이드 가능한 변수
          "$button_sub_command": "@r",
          // 오버라이드 가능한 변수
          "$button_text": "commands.autocomplete.r"
        }
      }
    ]
  },

  // ???/?? ??
  "advanced_host_weather_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_host_options_advanced)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "query@rainbowpieui_host_options.host_sub_command_button": {
          // 오버라이드 가능한 변수
          "$button_sub_command": "query",
          // 오버라이드 가능한 변수
          "$button_text": "query"
        }
      }
    ]
  },

  // ???/?? ??
  "advanced_host_time_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_flag_1597ee9b or (not $rainbowpie_ui_flag_host_options_advanced))",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "1500@rainbowpieui_host_options.host_sub_command_button": {
          // 오버라이드 가능한 변수
          "$button_sub_command": "1500",
          // 오버라이드 가능한 변수
          "$button_text": "1500",
          // 오버라이드 가능한 변수
          "$button_glyph_texture": "textures/ui/time_3noon"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "4000@rainbowpieui_host_options.host_sub_command_button": {
          // 오버라이드 가능한 변수
          "$button_sub_command": "4000",
          // 오버라이드 가능한 변수
          "$button_text": "4000",
          // 오버라이드 가능한 변수
          "$button_glyph_texture": "textures/ui/time_3noon"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "8000@rainbowpieui_host_options.host_sub_command_button": {
          // 오버라이드 가능한 변수
          "$button_sub_command": "8000",
          // 오버라이드 가능한 변수
          "$button_text": "8000",
          // 오버라이드 가능한 변수
          "$button_glyph_texture": "textures/ui/time_3noon"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "10000@rainbowpieui_host_options.host_sub_command_button": {
          // 오버라이드 가능한 변수
          "$button_sub_command": "10000",
          // 오버라이드 가능한 변수
          "$button_text": "10000",
          // 오버라이드 가능한 변수
          "$button_glyph_texture": "textures/ui/time_3noon"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "15000@rainbowpieui_host_options.host_sub_command_button": {
          // 오버라이드 가능한 변수
          "$button_sub_command": "15000",
          // 오버라이드 가능한 변수
          "$button_text": "15000",
          // 오버라이드 가능한 변수
          "$button_glyph_texture": "textures/ui/time_6midnight"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "16850@rainbowpieui_host_options.host_sub_command_button": {
          // 오버라이드 가능한 변수
          "$button_sub_command": "16850",
          // 오버라이드 가능한 변수
          "$button_text": "16850",
          // 오버라이드 가능한 변수
          "$button_glyph_texture": "textures/ui/time_6midnight"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "19000@rainbowpieui_host_options.host_sub_command_button": {
          // 오버라이드 가능한 변수
          "$button_sub_command": "19000",
          // 오버라이드 가능한 변수
          "$button_text": "19000",
          // 오버라이드 가능한 변수
          "$button_glyph_texture": "textures/ui/time_6midnight"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "20800@rainbowpieui_host_options.host_sub_command_button": {
          // 오버라이드 가능한 변수
          "$button_sub_command": "20800",
          // 오버라이드 가능한 변수
          "$button_text": "20800",
          // 오버라이드 가능한 변수
          "$button_glyph_texture": "textures/ui/time_6midnight"
        }
      }
    ]
  },

  // ???/?? ??
  "host_weather_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "host_main_grid@host_options.host_grid": {
          // 오버라이드 가능한 변수
          "$grid_dimension_binding": "#host_weather_grid_dimension",
          // 오버라이드 가능한 변수
          "$grid_collection_name": "host_weather_collection",
          // 오버라이드 가능한 변수
          "$grid_item_template": "host_options.host_sub_command_grid_item"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "advanced_host_weather_panel@rainbowpieui_host_options.advanced_host_weather_panel": {}
      }
    ]
  },

  // ???/?? ??
  "time_tweaker_result_button_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button_label@host_options.button_label": {
          // 오버라이드 가능한 변수
          "$button_text_color": "$text_color",
          // 오버라이드 가능한 변수
          "$button_label_anchor_from": "left_middle",
          // 오버라이드 가능한 변수
          "$button_label_anchor_to": "left_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 30, 0 ],
          // 보여줄 글자
          "text": "#time_text",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "rainbowpie_time_slider",
              // 계산식/참조 값
              "source_property_name": "#fin_time_int",
              // 결과가 들어갈 속성
              "target_property_name": "#fin_time_int"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('\"' + #fin_time_int + '\"')",
              // 결과가 들어갈 속성
              "target_property_name": "#time_text"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "arrow@host_options.host_glyph_panel": {
          // 오버라이드 가능한 변수
          "$button_glyph_texture": "textures/ui/arrowRight",
          // 오버라이드 가능한 변수
          "$offset_glyph": [ -4, 0 ],
          // 오버라이드 가능한 변수
          "$button_glyph_anchor_from": "right_middle",
          // 오버라이드 가능한 변수
          "$button_glyph_anchor_to": "right_middle",
          // 가로/세로 크기
          "size": [ 8, 8 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "time_1sunrise@host_options.host_glyph_panel": {
          // 오버라이드 가능한 변수
          "$button_glyph_texture": "textures/ui/time_1sunrise",
          // 오버라이드 가능한 변수
          "$offset_glyph": [ 0, 0 ],
          // 오버라이드 가능한 변수
          "$button_glyph_anchor_from": "left_middle",
          // 오버라이드 가능한 변수
          "$button_glyph_anchor_to": "left_middle",
          // 가로/세로 크기
          "size": [ "100%y", "100%" ],
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "rainbowpie_time_slider",
              // 계산식/참조 값
              "source_property_name": "#slider_value_int",
              // 결과가 들어갈 속성
              "target_property_name": "#time_hour_int"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#time_hour_int > 4) and (#time_hour_int < 7))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "time_2day@host_options.host_glyph_panel": {
          // 오버라이드 가능한 변수
          "$button_glyph_texture": "textures/ui/time_2day",
          // 오버라이드 가능한 변수
          "$offset_glyph": [ 0, 0 ],
          // 오버라이드 가능한 변수
          "$button_glyph_anchor_from": "left_middle",
          // 오버라이드 가능한 변수
          "$button_glyph_anchor_to": "left_middle",
          // 가로/세로 크기
          "size": [ "100%y", "100%" ],
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "rainbowpie_time_slider",
              // 계산식/참조 값
              "source_property_name": "#slider_value_int",
              // 결과가 들어갈 속성
              "target_property_name": "#time_hour_int"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#time_hour_int > 6) and (#time_hour_int < 11))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "time_3noon@host_options.host_glyph_panel": {
          // 오버라이드 가능한 변수
          "$button_glyph_texture": "textures/ui/time_3noon",
          // 오버라이드 가능한 변수
          "$offset_glyph": [ 0, 0 ],
          // 오버라이드 가능한 변수
          "$button_glyph_anchor_from": "left_middle",
          // 오버라이드 가능한 변수
          "$button_glyph_anchor_to": "left_middle",
          // 가로/세로 크기
          "size": [ "100%y", "100%" ],
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "rainbowpie_time_slider",
              // 계산식/참조 값
              "source_property_name": "#slider_value_int",
              // 결과가 들어갈 속성
              "target_property_name": "#time_hour_int"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#time_hour_int > 10) and (#time_hour_int < 17))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "time_4sunset@host_options.host_glyph_panel": {
          // 오버라이드 가능한 변수
          "$button_glyph_texture": "textures/ui/time_4sunset",
          // 오버라이드 가능한 변수
          "$offset_glyph": [ 0, 0 ],
          // 오버라이드 가능한 변수
          "$button_glyph_anchor_from": "left_middle",
          // 오버라이드 가능한 변수
          "$button_glyph_anchor_to": "left_middle",
          // 가로/세로 크기
          "size": [ "100%y", "100%" ],
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "rainbowpie_time_slider",
              // 계산식/참조 값
              "source_property_name": "#slider_value_int",
              // 결과가 들어갈 속성
              "target_property_name": "#time_hour_int"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#time_hour_int > 16) and (#time_hour_int < 19))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "time_5night@host_options.host_glyph_panel": {
          // 오버라이드 가능한 변수
          "$button_glyph_texture": "textures/ui/time_5night",
          // 오버라이드 가능한 변수
          "$offset_glyph": [ 0, 0 ],
          // 오버라이드 가능한 변수
          "$button_glyph_anchor_from": "left_middle",
          // 오버라이드 가능한 변수
          "$button_glyph_anchor_to": "left_middle",
          // 가로/세로 크기
          "size": [ "100%y", "100%" ],
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "rainbowpie_time_slider",
              // 계산식/참조 값
              "source_property_name": "#slider_value_int",
              // 결과가 들어갈 속성
              "target_property_name": "#time_hour_int"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#time_hour_int > 18) and (#time_hour_int < 22))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "time_6midnight@host_options.host_glyph_panel": {
          // 오버라이드 가능한 변수
          "$button_glyph_texture": "textures/ui/time_6midnight",
          // 오버라이드 가능한 변수
          "$offset_glyph": [ 0, 0 ],
          // 오버라이드 가능한 변수
          "$button_glyph_anchor_from": "left_middle",
          // 오버라이드 가능한 변수
          "$button_glyph_anchor_to": "left_middle",
          // 가로/세로 크기
          "size": [ "100%y", "100%" ],
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "rainbowpie_time_slider",
              // 계산식/참조 값
              "source_property_name": "#slider_value_int",
              // 결과가 들어갈 속성
              "target_property_name": "#time_hour_int"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(((#time_hour_int > 21) and (#time_hour_int < 24)) or ((#time_hour_int > -1) and (#time_hour_int < 5)))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "host_options_advanced_host_time_tweaker": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_988450b0",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "advanced_host_time_tweaker@rainbowpieui_host_options.advanced_host_time_tweaker": {}
      }
    ]
  },

  // ???/?? ??
  "independent_advanced_host_time_tweaker": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 90 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_988450b0)",
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#message_text_box_content"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('message:' + #message_text_box_content)",
        // 결과가 들어갈 속성
        "target_property_name": "#formatted_message_text"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('%.17s' * #formatted_message_text) = 'message:/time set')",
        // 결과가 들어갈 속성
        "target_property_name": "#cmd_0"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('%.13s' * #formatted_message_text) = 'message:.time')",
        // 결과가 들어갈 속성
        "target_property_name": "#cmd_1"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('%.11s' * #formatted_message_text) = 'message:.tt')",
        // 결과가 들어갈 속성
        "target_property_name": "#cmd_2"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#cmd_0 or #cmd_1 or #cmd_2)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "advanced_host_time_tweaker@rainbowpieui_host_options.advanced_host_time_tweaker": {}
      }
    ]
  },

  // ???/?? ??
  "advanced_host_time_tweaker": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점에서 이동하는 거리
    "offset": [ "100% + 16px", 0 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "right_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "right_middle",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_1597ee9b)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "debug01@rainbowpie_ui_common.debug_draw": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_debug_name": "advanced_host_time_tweaker"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@rainbowpie_ui_common.dialog_background": {
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "slider_title_stack": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100%c", "10px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 2, 2 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title@rainbowpie_ui_common.text_label": {
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // 보여줄 글자
                      "text": "rainbowpie.ui.host_options.time_title",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2
                    }
                  },
                  {
                    // ???/?? ??
                    "padding": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 1, 0 ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "time@rainbowpie_ui_common.text_label": {
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // 보여줄 글자
                      "text": "#time_text",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "rainbowpie_time_slider",
                          // 계산식/참조 값
                          "source_property_name": "#slider_value_int",
                          // 결과가 들어갈 속성
                          "target_property_name": "#time_hour_int"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "('\"' + #time_hour_int + ':00' + '\"')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#time_text"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "rainbowpie_time_slider@common.slider": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_sliderbar_enabled": true,
                // 오버라이드 가능한 변수
                "$slider_name": "rainbowpie_time_slider",
                // 가로/세로 크기
                "size": [ "100% - 16px", "16px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 14 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#slider_steps": 24,
                  // ???/??? ?
                  "#slider_value_init": 0,
                  // ???/??? ?
                  "#slider_value_int": 0,
                  // ???/??? ?
                  "#days_int": 0,
                  // ???/??? ?
                  "#fin_time_int": 0
                },
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "#slider_steps",
                    // 결과가 들어갈 속성
                    "target_property_name": "#slider_steps"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "#slider_value_init",
                    // 결과가 들어갈 속성
                    "target_property_name": "#slider_value"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(((#slider_value_int > #slider_value) * - 1 + 1) * ((#slider_value_int < #slider_value) * 1 + #slider_value_int))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#slider_value_int"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "((#slider_value_int < 6) * (18000 + 1000 * #slider_value_int) + (#slider_value_int > 6) * (#slider_value_int - 6) * 1000)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#time_int"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "time_tweaker_days_text",
                    // 계산식/참조 값
                    "source_property_name": "#item_name",
                    // 결과가 들어갈 속성
                    "target_property_name": "#days_str"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#days_str * 1)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#days_int"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "((#days_int * 24000) + #time_int)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#fin_time_int"
                  }
                ]
              }
            },
            // max number = 89478
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "days_played@common.text_edit_box": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_editbox_enabled": true,
                // 겹치는 순서(숫자 클수록 위)
                "layer": 5,
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점에서 이동하는 거리
                "offset": [ 0, 32 ],
                // 가로/세로 크기
                "size": [ "100% - 6px", 20 ],
                // 오버라이드 가능한 변수
                "$text_type": "NumberChars",
                // 오버라이드 가능한 변수
                "$text_box_name": "time_tweaker_days_text_box",
                // 오버라이드 가능한 변수
                "$text_edit_text_control": "time_tweaker_days_text",
                // 오버라이드 가능한 변수
                "$place_holder_text": "rainbowpie.ui.host_options.days_played",
                // ?? ?? ?
                "max_length": 32767,
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "(not $rainbowpie_ui_flag_988450b0)",
                    // 오버라이드 가능한 변수
                    "$text_edit_box_selected_to_button_id": "",
                    // 오버라이드 가능한 변수
                    "$text_edit_box_deselected_to_button_id": ""
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "note_text@rainbowpie_ui_common.text_label": {
                // 완전히 제거(공간도 없음)
                "ignored": true,
                // 가로/세로 크기
                "size": [ "100% - 4px", "default" ],
                // ?? ?? ?
                "max_size": [ "100% - 4px", "20px" ],
                // 보여줄 글자
                "text": "rainbowpie.ui.host_options.time_note",
                // ?? ??
                "text_alignment": "center",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "weather_button@host_options.main_dark_button": {
                // 가로/세로 크기
                "size": [ "100% - 4px", 30 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, -2 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 오버라이드 가능한 변수
                "$button_content": "rainbowpieui_host_options.time_tweaker_result_button_content",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "rainbowpie.sub_command",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2
              }
            },
            {
              // ???/?? ??
              "weather_command": {
                // 마우스/커서 따라다니는 패널
                "type": "input_panel",
                // 가로/세로 크기
                "size": [ "100% - 4px", 30 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, -2 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 보이기/숨기기(공간 유지)
                "visible": false,
                // ?? ??
                "consume_hover_events": false,
                // 입력 키/버튼과 동작 연결
                "button_mappings": [
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_select",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.sub_command",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed",
                    // ?? ??
                    "consume_event": false
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_ok",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.sub_command",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed",
                    // ?? ??
                    "consume_event": false
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "rainbowpie_time_slider",
                    // 계산식/참조 값
                    "source_property_name": "#fin_time_int",
                    // 결과가 들어갈 속성
                    "target_property_name": "#fin_time_int"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "('\"' + #fin_time_int + '\"')",
                    // 결과가 들어갈 속성
                    "target_property_name": "#sub_command"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#host_time_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "menu_navigation": {
                // 마우스/커서 따라다니는 패널
                "type": "input_panel",
                // 가로/세로 크기
                "size": [ "100% - 4px", 30 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, -2 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4,
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_flag_988450b0)",
                // 보이기/숨기기(공간 유지)
                "visible": false,
                // ?? ??
                "consume_hover_events": false,
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#button_navigation": 6
                },
                // 입력 키/버튼과 동작 연결
                "button_mappings": [
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_select",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_navigation",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed",
                    // ?? ??
                    "consume_event": false
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_ok",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_navigation",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed",
                    // ?? ??
                    "consume_event": false
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "(not #host_time_visible)",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "host_time_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "host_main_grid@host_options.host_grid": {
          // 오버라이드 가능한 변수
          "$grid_dimension_binding": "#host_time_grid_dimension",
          // 오버라이드 가능한 변수
          "$grid_collection_name": "host_time_collection",
          // 오버라이드 가능한 변수
          "$grid_item_template": "host_options.host_sub_command_grid_item"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "advanced_host_time_panel@rainbowpieui_host_options.advanced_host_time_panel": {}
      }
    ]
  }
}

how_to_play_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: how_to_play_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_how_to_play",

  // ???/?? ??
  "how_to_play_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "header@rainbowpie_ui_common.screen_header": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_title": "#section_title",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_title_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#section_title",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "blur_layer@mintui_background.background_blur": {
          // 완전히 제거(공간도 없음)
          "ignored": "$rainbowpie_ui_flag_3e35fb2e",
          // 오버라이드 가능한 변수
          "$background_offset": [ "-68%", 20 ],
          // 오버라이드 가능한 변수
          "$background_children_offset": [ "68%", -20 ],
          // 오버라이드 가능한 변수
          "$background_layer": -3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "mask_layer@mintui_background.background_mask": {
          // 완전히 제거(공간도 없음)
          "ignored": "$rainbowpie_ui_flag_3e35fb2e",
          // 오버라이드 가능한 변수
          "$background_offset": [ "-68%", 20 ],
          // 오버라이드 가능한 변수
          "$background_children_offset": [ "68%", -20 ],
          // 오버라이드 가능한 변수
          "$background_layer": -3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background_blur@mintui_background.background_blur_fullscreen": {
          // 완전히 제거(공간도 없음)
          "ignored": "((not $is_pregame) or (not $rainbowpie_ui_flag_3e35fb2e))",
          // 오버라이드 가능한 변수
          "$background_mask": false,
          // 겹치는 순서(숫자 클수록 위)
          "layer": -3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // ???/?? ??
              "container": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100% - 20px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 20 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "selector_background@rainbowpie_ui_common.text_background": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "$rainbowpie_ui_flag_71042f58",
                      // 보이기/숨기기(공간 유지)
                      "visible": "((not $is_pregame) or (not $rainbowpie_ui_feature_background_blur))",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_left",
                      // 가로/세로 크기
                      "size": [ "32%", "100%" ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "content_background@rainbowpie_ui_common.global_background": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_right",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_right",
                      // 가로/세로 크기
                      "size": [ "68%", "100%" ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // ???
                      "alpha": "$rainbowpie_localui_this_alpha",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_alpha": "$rainbowpie_ui_theme_global_background_alpha",
                      // 조건에 따라 변수 값을 바꾸기
                      "variables": [
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_pregame",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_alpha": 0.5
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "dialog_content": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 10,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        { "selector_area@rainbowpieui_how_to_play.selector_area": {} },
                        { "content_area@rainbowpieui_how_to_play.content_area_wrapper": {} }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "scrollable_selector_area_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 기준점에서 이동하는 거리
    "offset": [ 1, 0 ],
    // 가로/세로 크기
    "size": [ "100% - 2px", "100%c + 1px" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "$selector_stack_panel@$selector_stack_panel": {} }
    ]
  },

  // ???/?? ??
  "selector_area": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "32%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3,
    // ??? ?? ?
    "focus_container": true,
    // ??? ?? ?
    "use_last_focus": true,
    // 오버라이드 가능한 변수
    "$focus_navigation_mode_override_down|default": "contained",
    // 오버라이드 가능한 변수
    "$focus_navigation_mode_override_up|default": "contained",
    // 오버라이드 가능한 변수
    "$focus_navigation_mode_override_left|default": "",
    // 오버라이드 가능한 변수
    "$focus_navigation_mode_override_right|default": "",
    // ??? ?? ?
    "focus_navigation_mode_down": "$focus_navigation_mode_override_down",
    // ??? ?? ?
    "focus_navigation_mode_up": "$focus_navigation_mode_override_up",
    // ??? ?? ?
    "focus_navigation_mode_left": "$focus_navigation_mode_override_left",
    // ??? ?? ?
    "focus_navigation_mode_right": "$focus_navigation_mode_override_right",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "scrolling_panel@common.scrolling_panel": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_scrollbar_enabled": true,
          // 오버라이드 가능한 변수
          "$scrolling_content": "rainbowpieui_how_to_play.scrollable_selector_area_content",
          // 오버라이드 가능한 변수
          "$show_background": false,
          // 오버라이드 가능한 변수
          "$scroll_size": [ "5px", "100% - 4px" ],
          // 오버라이드 가능한 변수
          "$scroll_bar_left_padding_size": [ 0, 0 ],
          // 오버라이드 가능한 변수
          "$scroll_bar_right_padding_size": [ 1, 0 ]
        }
      }
    ]
  },

  // ???/?? ??
  "content_area_wrapper": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "68%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "content_area@rainbowpieui_how_to_play.content_area": {} }
    ]
  },

  // ???/?? ??
  "content_area": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "control": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100% - 2px", "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "scrolling_panel@common.scrolling_panel": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_scrollbar_enabled": true,
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 오버라이드 가능한 변수
                "$scrolling_content": "$section_content_panels",
                // 오버라이드 가능한 변수
                "$show_background": false,
                // 오버라이드 가능한 변수
                "$scroll_size": [ "5px", "100% - 4px" ],
                // 오버라이드 가능한 변수
                "$scroll_bar_left_padding_size": [ 0, 0 ],
                // 오버라이드 가능한 변수
                "$scroll_bar_right_padding_size": [ 1, 0 ]
              }
            }
          ]
        }
      }
    ]
  }
}

hud_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: hud_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_hud",

  // ???/?? ??
  "boss_name_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_75ad0b10)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "text_stack": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%", "100%cm" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "padding_fill_0": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "fill", 0 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#progress_percentage",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "boss_bars"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(1000-#progress_percentage*1000)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#health_percentage_ratio"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#health_percentage_ratio = 1000)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible",
                    // 완전히 제거(공간도 없음)
                    "ignored": "(not $rainbowpie_ui_flag_dc165cd2)"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "boss_name@rainbowpie_ui_common.text_label_notheme": {
                // 가로/세로 크기
                "size": [ "default", "default" ],
                // ?? (R,G,B,A)
                "color": "$boss_name_text_color",
                // 보여줄 글자
                "text": "#bossName",
                // ?? ??
                "shadow": true,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#bossName",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "boss_bars"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_fill_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "fill", 0 ]
              }
            },
            {
              // ???/?? ??
              "health_percentage_text_stack": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100%c", "100%cm" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#progress_percentage",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "boss_bars"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(1000-#progress_percentage*1000)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#health_percentage_ratio"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (#health_percentage_ratio = 1000))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible",
                    // 완전히 제거(공간도 없음)
                    "ignored": "(not $rainbowpie_ui_flag_dc165cd2)"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "health_percentage@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "default", "default" ],
                      // ?? (R,G,B,A)
                      "color": "$boss_name_text_color",
                      // 보여줄 글자
                      "text": "#health_percentage_text",
                      // ?? ??
                      "shadow": true,
                      // 이 컨트롤 안에서 쓰는 임시 저장소
                      "property_bag": {
                        // ???/??? ?
                        "#health_percentage_int": 0
                      },
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#progress_percentage",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "boss_bars"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(1000-#progress_percentage*1000)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#health_percentage_ratio"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "((#health_percentage_ratio > 99) * 100 + (#health_percentage_ratio > 199) * 100 + (#health_percentage_ratio > 299) * 100 + (#health_percentage_ratio > 399) * 100 + (#health_percentage_ratio > 499) * 100 + (#health_percentage_ratio > 599) * 100 + (#health_percentage_ratio > 699) * 100 + (#health_percentage_ratio > 799) * 100 + (#health_percentage_ratio > 899) * 100 + (#health_percentage_ratio > 999) * 100)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#health_percentage_integer_1"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "((#health_percentage_ratio - #health_percentage_integer_1 > 9) * 10 + (#health_percentage_ratio - #health_percentage_integer_1 > 19) * 10 + (#health_percentage_ratio - #health_percentage_integer_1 > 29) * 10 + (#health_percentage_ratio - #health_percentage_integer_1 > 39) * 10 + (#health_percentage_ratio - #health_percentage_integer_1 > 49) * 10 + (#health_percentage_ratio - #health_percentage_integer_1 > 59) * 10 + (#health_percentage_ratio - #health_percentage_integer_1 > 69) * 10 + (#health_percentage_ratio - #health_percentage_integer_1 > 79) * 10 + (#health_percentage_ratio - #health_percentage_integer_1 > 89) * 10 + (#health_percentage_ratio - #health_percentage_integer_1 > 99) * 10)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#health_percentage_integer_2"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "((#health_percentage_ratio - (#health_percentage_integer_1 + #health_percentage_integer_2) > 0) + (#health_percentage_ratio - (#health_percentage_integer_1 + #health_percentage_integer_2) > 1) * 1 + (#health_percentage_ratio - (#health_percentage_integer_1 + #health_percentage_integer_2) > 2) * 1 + (#health_percentage_ratio - (#health_percentage_integer_1 + #health_percentage_integer_2) > 3) * 1 + (#health_percentage_ratio - (#health_percentage_integer_1 + #health_percentage_integer_2) > 4) * 1 + (#health_percentage_ratio - (#health_percentage_integer_1 + #health_percentage_integer_2) > 5) * 1 + (#health_percentage_ratio - (#health_percentage_integer_1 + #health_percentage_integer_2) > 6) * 1 + (#health_percentage_ratio - (#health_percentage_integer_1 + #health_percentage_integer_2) > 7) * 1 + (#health_percentage_ratio - (#health_percentage_integer_1 + #health_percentage_integer_2) > 8) * 1 + (#health_percentage_ratio - (#health_percentage_integer_1 + #health_percentage_integer_2) > 9) * 1)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#health_percentage_fraction_1"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "((#health_percentage_integer_1 + #health_percentage_integer_2) / 10)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#health_percentage_integer"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "#health_percentage_fraction_1",
                          // 결과가 들어갈 속성
                          "target_property_name": "#health_percentage_fraction"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "('\"' + #health_percentage_integer + '.' + #health_percentage_fraction + '\"')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#health_percentage_text"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "health_percentage_symbol@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "default", "default" ],
                      // ?? (R,G,B,A)
                      "color": "$boss_name_text_color",
                      // 보여줄 글자
                      "text": "rainbowpie.ui.symbols.percentage",
                      // ?? ??
                      "shadow": true
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // Fix layout customization on v1.20.50
  "layout_customization_option@hud.layout_customization_option": {},
  // 다른 템플릿을 가져와서 확장(상속)
  "layout_customization_option_content@hud.layout_customization_option_content": {},
  // 다른 템플릿을 가져와서 확장(상속)
  "layout_customization_option_slider@hud.layout_customization_option_slider": {},

  // ???/?? ??
  "layout_customization_reset_modal": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 가로/세로 크기
    "size": [ 204, 132 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialogheader_title": "rainbowpie.ui.dialog.title_default",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_content": "rainbowpieui_hud.layout_customization_reset_modal_dialog_content",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_show_background": false,
          // 오버라이드 가능한 변수
          "$close_button_to_button_id": "button.cancel_reset"
        }
      }
    ]
  },

  // ???/?? ??
  "layout_customization_reset_modal_dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "text@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "100% - 6px", "100% - 4px" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_dialog_content_color",
                      // 보여줄 글자
                      "text": "hudScreen.controlCustomization.resetModalText"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c + 1px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100% + 1px", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "button_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_default_alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 가로/세로 크기
                            "size": [ "100%", 23 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "reset_modal_ok@common_buttons.light_text_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.confirm_reset",
                                  // 오버라이드 가능한 변수
                                  "$button_text": "hudScreen.controlCustomization.resetConfirm",
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "reset_modal_cancel@common_buttons.light_text_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.cancel_reset",
                                  // 오버라이드 가능한 변수
                                  "$button_text": "hudScreen.controlCustomization.resetCancel",
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "layout_customization_close_without_saving": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 가로/세로 크기
    "size": [ 204, 132 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialogheader_title": "rainbowpie.ui.dialog.title_default",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_content": "rainbowpieui_hud.layout_customization_close_without_saving_dialog_content",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_show_background": false,
          // 오버라이드 가능한 변수
          "$close_button_to_button_id": "button.cancel_reset"
        }
      }
    ]
  },

  // ???/?? ??
  "layout_customization_close_without_saving_dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "text@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "100% - 6px", "100% - 4px" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_dialog_content_color",
                      // 보여줄 글자
                      "text": "hudScreen.controlCustomization.closeWithoutSavingModalText"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c + 1px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100% + 1px", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "button_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_default_alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 가로/세로 크기
                            "size": [ "100%", 23 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "without_saving_modal_ok@common_buttons.light_text_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.confirm_close_without_saving",
                                  // 오버라이드 가능한 변수
                                  "$button_text": "hudScreen.controlCustomization.closeWithoutSavingConfirm",
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "close_without_saving_modal_cancel@common_buttons.light_text_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.cancel_close_without_saving",
                                  // 오버라이드 가능한 변수
                                  "$button_text": "hudScreen.controlCustomization.closeWithoutSavingCancel",
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "hotbar_items_durability_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%c" ],
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "tip_text_background": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ "100%c + 4px", "100%c + 4px" ],
          // 사용할 이미지 경로
          "texture": "($rainbowpie_ui_path_home + '/r_white')",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_ui_theme_text_background_color",
          // ???
          "alpha": "$rainbowpie_ui_theme_text_background_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 30,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "stack_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100%c", 12 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "item_renderer@rainbowpie_ui_common.item_renderer": {
                      // 가로/세로 크기
                      "size": [ "100%y", "100%" ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#item_id_aux",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "hotbar_items"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "padding_0": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 2, 2 ]
                    }
                  },
                  {
                    // ???/?? ??
                    "selected_durability_text_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%c", "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "durability_stack_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 가로/세로 크기
                            "size": [ "100%c", "100%cm" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "durability_title@rainbowpie_ui_common.text_label": {
                                  // 보여줄 글자
                                  "text": "rainbowpie.ui.inventory.durability",
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "(not $rainbowpie_ui_flag_durabilityview_title)"
                                }
                              },
                              {
                                // ???/?? ??
                                "padding": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ 1, 0 ],
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "(not $rainbowpie_ui_flag_durabilityview_title)"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "durability_text@rainbowpie_ui_common.text_label": {
                                  // 보여줄 글자
                                  "text": "#text",
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#item_durability_total_amount",
                                      // 목록 데이터를 반복 연결
                                      "binding_type": "collection",
                                      // 목록 이름
                                      "binding_collection_name": "hotbar_items"
                                    },
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#item_durability_current_amount",
                                      // 목록 데이터를 반복 연결
                                      "binding_type": "collection",
                                      // 목록 이름
                                      "binding_collection_name": "hotbar_items"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "(((#amount_current>#item_durability_current_amount)*-1+1)*((#amount_current<#item_durability_current_amount)*1+#amount_current))",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#amount_current",
                                      // ?? ???
                                      "binding_condition": "always_when_visible"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "(((#amount_total>#item_durability_total_amount)*-1+1)*((#amount_total<#item_durability_total_amount)*1+#amount_total))",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#amount_total",
                                      // ?? ???
                                      "binding_condition": "always_when_visible"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "('\"' + #amount_current + '/' + #amount_total + '\"')",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#text"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#slot_selected",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "hotbar_items"
      },
      {
        // 가져올 값 이름
        "binding_name": "#item_durability_total_amount",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "hotbar_items"
      },
      {
        // 가져올 값 이름
        "binding_name": "#item_durability_current_amount",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "hotbar_items"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((not ((#item_durability_total_amount = 0) and (#item_durability_current_amount = 0))) and #slot_selected)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "hotbar_items_durability": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "hotbar_items",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_right",
    // 가로/세로 크기
    "size": [ "100%cm", "100%c" ],
    // 기준점에서 이동하는 거리
    "offset": [ -7, -6 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_slot_0@rainbowpieui_hud.hotbar_items_durability_item": {
          // ?? ??
          "collection_index": 0
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_slot_1@rainbowpieui_hud.hotbar_items_durability_item": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_slot_2@rainbowpieui_hud.hotbar_items_durability_item": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_slot_3@rainbowpieui_hud.hotbar_items_durability_item": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_slot_4@rainbowpieui_hud.hotbar_items_durability_item": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_slot_5@rainbowpieui_hud.hotbar_items_durability_item": {
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_slot_6@rainbowpieui_hud.hotbar_items_durability_item": {
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_slot_7@rainbowpieui_hud.hotbar_items_durability_item": {
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_slot_8@rainbowpieui_hud.hotbar_items_durability_item": {
          // ?? ??
          "collection_index": 8
        }
      }
    ]
  },

  // ???/?? ??
  "hotbar_items_durability_warning_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%c" ],
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "tip_text_background": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ "100%c + 4px", "100%c + 4px" ],
          // 사용할 이미지 경로
          "texture": "($rainbowpie_ui_path_home + '/r_white')",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_ui_theme_text_background_color",
          // ???
          "alpha": "$rainbowpie_ui_theme_text_background_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 30,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "stack_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100%c", 12 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "selected_durability_text_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%c + 1px", "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "durability_stack_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 가로/세로 크기
                            "size": [ "100%c", "100%cm" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "durability_title@rainbowpie_ui_common.text_label": {
                                  // 보여줄 글자
                                  "text": "rainbowpie.ui.inventory.durability_remaining",
                                  // ?? (R,G,B,A)
                                  "color": [ 1.0, 0.333, 0.333 ]
                                }
                              },
                              {
                                // ???/?? ??
                                "padding_1": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ 1, 0 ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "durability_text@rainbowpie_ui_common.text_label": {
                                  // 보여줄 글자
                                  "text": "#text",
                                  // ?? (R,G,B,A)
                                  "color": [ 1.0, 0.333, 0.333 ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#item_durability_current_amount",
                                      // 목록 데이터를 반복 연결
                                      "binding_type": "collection",
                                      // 목록 이름
                                      "binding_collection_name": "hotbar_items"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "(((#amount_current>#item_durability_current_amount)*-1+1)*((#amount_current<#item_durability_current_amount)*1+#amount_current))",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#amount_current",
                                      // ?? ???
                                      "binding_condition": "always_when_visible"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "('\"' + #amount_current + '\"')",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#text"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#slot_selected",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "hotbar_items"
      },
      {
        // 가져올 값 이름
        "binding_name": "#item_durability_total_amount",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "hotbar_items"
      },
      {
        // 가져올 값 이름
        "binding_name": "#item_durability_current_amount",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "hotbar_items"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((not ((#item_durability_total_amount = 0) and (#item_durability_current_amount = 0))) and (#item_durability_current_amount < 16) and #slot_selected)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "hotbar_items_durability_warning": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "hotbar_items",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 가로/세로 크기
    "size": [ "100%cm", "100%c" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 20 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_warning_slot_0@rainbowpieui_hud.hotbar_items_durability_warning_item": {
          // ?? ??
          "collection_index": 0
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_warning_slot_1@rainbowpieui_hud.hotbar_items_durability_warning_item": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_warning_slot_2@rainbowpieui_hud.hotbar_items_durability_warning_item": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_warning_slot_3@rainbowpieui_hud.hotbar_items_durability_warning_item": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_warning_slot_4@rainbowpieui_hud.hotbar_items_durability_warning_item": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_warning_slot_5@rainbowpieui_hud.hotbar_items_durability_warning_item": {
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_warning_slot_6@rainbowpieui_hud.hotbar_items_durability_warning_item": {
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_warning_slot_7@rainbowpieui_hud.hotbar_items_durability_warning_item": {
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_warning_slot_8@rainbowpieui_hud.hotbar_items_durability_warning_item": {
          // ?? ??
          "collection_index": 8
        }
      }
    ]
  },

  // ???/?? ??
  "rainbowpie_hud_durability": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 완전히 제거(공간도 없음)
    "ignored": "((not $rainbowpie_ui_feature_inventory_durability) or (not $rainbowpie_ui_feature_hud_durability))",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability@rainbowpieui_hud.hotbar_items_durability": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_items_durability_warning@rainbowpieui_hud.hotbar_items_durability_warning": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_hud_durability_warning)"
        }
      }
    ]
  },

  // ???/?? ??
  "rainbowpie_hud_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_hidehud_button@rainbowpieui_hud.borderless_button": {
          // 완전히 제거(공간도 없음)
          "ignored": "(($rainbowpie_ui_flag_hud_hotbar_mode = 0) or $rainbowpie_ui_flag_hud_hidehud_clickspace)",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.hide_gui_all",
          // ??/???
          "enabled": true,
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 가로/세로 크기
          "size": [ 20, 24 ],
          // 기준점에서 이동하는 거리
          "offset": [ -100, -0.5 ],
          // 오버라이드 가능한 변수
          "$button_controls": [
            {
              // ???/?? ??
              "icon_text": {
                // 글자 표시
                "type": "label",
                // ??
                "font_type": "default",
                // 보여줄 글자
                "text": "H",
                // ???
                "alpha": 0.65,
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#layout_customization_main_panel_visible"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not #layout_customization_main_panel_visible)",
              // 결과가 들어갈 속성
              "target_property_name": "#enabled"
            },
            {
              // 가져올 값 이름
              "binding_name": "#inventory_touch_button",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "clickspace_hidehud": {
          // 완전히 제거(공간도 없음)
          "ignored": "(($rainbowpie_ui_flag_hud_hotbar_mode = 0) or not $rainbowpie_ui_flag_hud_hidehud_clickspace)",
          // 마우스/커서 따라다니는 패널
          "type": "input_panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 가로/세로 크기
          "size": [ 220, 24 ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, -0.5 ],
          // ?? ??
          "prevent_touch_input": true,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "tip_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "tip_text_background": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "100%c + 12px", "100%c + 5px" ],
                      // 사용할 이미지 경로
                      "texture": "($rainbowpie_ui_path_home + '/r_black')",
                      // ???
                      "alpha": 0,
                      // 애니메이션 목록
                      "anims": ["@rainbowpieui_hud.hidehudtip_background_out_in"],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 30,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "item_text_label@rainbowpie_ui_common.text_label_notheme": {
                            // ?? ?? ?
                            "max_size": [ 160, 24 ],
                            // ?? ??
                            "text_alignment": "center",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 31,
                            // 보여줄 글자
                            "text": "rainbowpie.ui.hud.clickspace.tiptext",
                            // ???
                            "alpha": 0,
                            // 애니메이션 목록
                            "anims": ["@rainbowpieui_hud.hidehudtip_text_out_in"]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "border_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "border_left": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ 1, "100%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 사용할 이미지 경로
                      "texture": "textures/ui/White",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 30,
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_button_border_default_color",
                      // ???
                      "alpha": 0,
                      // 애니메이션 목록
                      "anims": ["@rainbowpieui_hud.hidehudtip_border_out_in"]
                    }
                  },
                  {
                    // ???/?? ??
                    "border_right": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ 1, "100%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",
                      // 사용할 이미지 경로
                      "texture": "textures/ui/White",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 30,
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_button_border_default_color",
                      // ???
                      "alpha": 0,
                      // 애니메이션 목록
                      "anims": ["@rainbowpieui_hud.hidehudtip_border_out_in"]
                    }
                  },
                  {
                    // ???/?? ??
                    "border_top": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "100%", 1 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 사용할 이미지 경로
                      "texture": "textures/ui/White",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 30,
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_button_border_default_color",
                      // ???
                      "alpha": 0,
                      // 애니메이션 목록
                      "anims": ["@rainbowpieui_hud.hidehudtip_border_out_in"]
                    }
                  },
                  {
                    // ???/?? ??
                    "border_bottom": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "100%", 1 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 사용할 이미지 경로
                      "texture": "textures/ui/White",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 30,
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_button_border_default_color",
                      // ???
                      "alpha": 0,
                      // 애니메이션 목록
                      "anims": ["@rainbowpieui_hud.hidehudtip_border_out_in"]
                    }
                  }
                ]
              }
            }
          ],
          // 입력 키/버튼과 동작 연결
          "button_mappings": [
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_select",
              // 어떤 동작을 실행할지
              "to_button_id": "button.hide_gui_all",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_ok",
              // 어떤 동작을 실행할지
              "to_button_id": "button.hide_gui_all",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#inventory_touch_button",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#hud_visible",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      },
      {
        // 가져올 값 이름
        "binding_name": "#hud_alpha",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#alpha",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      },
      {
        // 가져올 값 이름
        "binding_name": "#hud_propagate_alpha",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#propagateAlpha",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not #hud_visible)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "player_joined_toast_item_anim_start": {
    // 잠시 대기
    "anim_type": "wait",
		// 걸리는 시간(초)
		"duration": 0.0,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_hud.player_joined_toast_item_anim_wait"
  },

  // ???/?? ??
  "player_joined_toast_item_anim_wait": {
    // 투명도 변화
    "anim_type": "alpha",
		// 걸리는 시간(초)
		"duration": 8.0,
    // 시작 값
    "from": 1.0,
		// 끝 값
		"to": 1.0,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_hud.player_joined_toast_item_anim_end",
    // ?? ??
    "resettable": false
  },

  // ???/?? ??
  "player_joined_toast_item_anim_end": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "out_cubic",
		// 걸리는 시간(초)
		"duration": "$rainbowpie_ui_animation_chat_transition_time",
    // 시작 값
    "from": 1.0,
		// 끝 값
		"to": 0
  },

  // ???/?? ??
  "player_joined_toast_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 0, 20 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "player_joined_toast_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%c" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // ??? ?? ?
          "propagate_alpha": true,
          // ???
          "alpha": 1.0,
          // 애니메이션 목록
          "anims": ["@rainbowpieui_hud.player_joined_toast_item_anim_start"],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "tip_text_background": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100%c + 4px", "100%c + 4px" ],
                // 사용할 이미지 경로
                "texture": "($rainbowpie_ui_path_home + '/r_white')",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_text_background_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_text_background_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 30,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "stack_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 가로/세로 크기
                      "size": [ "100%c", 12 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "player_image": {
                            // 이미지 표시
                            "type": "image",
                            // 사용할 이미지 경로
                            "texture": "#texture",
                            // 가로/세로 크기
                            "size": [ 12, 12 ],
                            // ??? ?? ???
                            "texture_file_system": "#texture_source",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 2,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#texture",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection",
                                // 목록 이름
                                "binding_collection_name": "players_collection"
                              },
                              {
                                // 가져올 값 이름
                                "binding_name": "#texture_source",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection",
                                // 목록 이름
                                "binding_collection_name": "players_collection"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "#texture_source",
                                // 결과가 들어갈 속성
                                "target_property_name": "#texture_file_system"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(not (#texture_source = 'RawPath'))",
                                // 결과가 들어갈 속성
                                "target_property_name": "#is_local_picture"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(not (#is_local_picture)",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "player_image_local": {
                            // 이미지 표시
                            "type": "image",
                            // 사용할 이미지 경로
                            "texture": "textures/ui/icon_steve",
                            // 가로/세로 크기
                            "size": [ 12, 12 ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 2,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#texture_source",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection",
                                // 목록 이름
                                "binding_collection_name": "players_collection"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(not (#texture_source = 'RawPath'))",
                                // 결과가 들어갈 속성
                                "target_property_name": "#is_local_picture"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "#is_local_picture",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "padding_0": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 2, 0 ]
                          }
                        },
                        {
                          // ???/?? ??
                          "player_name_text_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%c + 1px", "100%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "player_name@rainbowpie_ui_common.title_label": {
                                  // ?? ??
                                  "text_alignment": "left",
                                  // 보여줄 글자
                                  "text": "#gamertag",
                                  // 가로/세로 크기
                                  "size": [ "default", 10 ],
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 3,
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#gamertag",
                                      // 목록 데이터를 반복 연결
                                      "binding_type": "collection",
                                      // 목록 이름
                                      "binding_collection_name": "players_collection"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "joined_text_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%c + 1px", "100%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "joined_text@rainbowpie_ui_common.title_label": {
                                  // ?? ??
                                  "text_alignment": "left",
                                  // 보여줄 글자
                                  "text": "joined.",
                                  // 가로/세로 크기
                                  "size": [ "default", 10 ],
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 3
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "notification_alpha_anim_start": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "out_cubic",
		// 걸리는 시간(초)
		"duration": "$rainbowpie_ui_animation_chat_transition_time",
    // 시작 값
    "from": 0.0,
		// 끝 값
		"to": 1.0,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_hud.notification_alpha_anim_wait"
  },

  // ???/?? ??
  "notification_alpha_anim_wait": {
    // 잠시 대기
    "anim_type": "wait",
		// 걸리는 시간(초)
		"duration": 8.0,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_hud.notification_alpha_anim_end"
  },

  // ???/?? ??
  "notification_alpha_anim_end": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "out_cubic",
    // ?? ??
    "destroy_at_end": "notification_features_disabled",
		// 걸리는 시간(초)
		"duration": "$rainbowpie_ui_animation_chat_transition_time",
    // 시작 값
    "from": 1.0,
		// 끝 값
		"to": 0
  },

  // ???/?? ??
  "notification_offset_anim_start": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_cubic",
		// 걸리는 시간(초)
		"duration": "$rainbowpie_ui_animation_chat_transition_time",
    // 시작 값
    "from": [ 0, -20 ],
		// 끝 값
		"to": [ 0, 0 ],
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_hud.notification_offset_anim_wait"
  },

  // ???/?? ??
  "notification_offset_anim_wait": {
    // 잠시 대기
    "anim_type": "wait",
		// 걸리는 시간(초)
		"duration": 8.0,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_hud.notification_offset_anim_end"
  },

  // ???/?? ??
  "notification_offset_anim_end": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_cubic",
    // ?? ??
    "destroy_at_end": "notification_features_disabled",
		// 걸리는 시간(초)
		"duration": "$rainbowpie_ui_animation_chat_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
		// 끝 값
		"to": [ 0, 20 ]
  },

  // ???/?? ??
  "rainbowpie_root_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      // Module Controls
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hud_block_counter@rainbowpie_module_hud_block_counter.hud_block_counter": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hud_bow_helper@rainbowpie_module_hud_bow_helper.hud_bow_helper": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hud_compass@rainbowpie_module_hud_compass.hud_compass": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hud_selected_item_id@rainbowpie_module_hud_selected_item_id.hud_selected_item_id": {}
      },
      // Item Durability
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "rainbowpie_hud_durability@rainbowpieui_hud.rainbowpie_hud_durability": {}
      },
      // 显示一个看不见的hud玩家渲染
      {
        // ???/?? ??
        "hud_player": {
          // 특수 렌더러(그라디언트/플레이어 등)
          "type": "custom",
          // 커스텀 렌더러 종류
          "renderer": "hud_player_renderer",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_0ffd0593)",
          // 가로/세로 크기
          "size": [ 0, 0 ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, "200%" ]
        }
      },
      // Features Disabled Notification
      {
        // ???/?? ??
        "notification_features_disabled": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 완전히 제거(공간도 없음)
          "ignored": "((not $rainbowpie_ui_flag_6a8911d5) or (not $rainbowpie_ui_flag_notification_features_disabled))",
          // ??? ?? ?
          "propagate_alpha": true,
          // 애니메이션 목록
          "anims": [
            "@rainbowpieui_hud.notification_alpha_anim_start",
            "@rainbowpieui_hud.notification_offset_anim_start"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "notification_background@rainbowpie_ui_common.text_background": {
                // 사용할 이미지 경로
                "texture": "($rainbowpie_ui_path_home + '/r_white')",
                // 가로/세로 크기
                "size": [ "100%cm + 6px", "100%c + 4px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 20 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "content_stack": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 가로/세로 크기
                      "size": [ "100%cm", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "title_text_stack": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 가로/세로 크기
                            "size": [ "100%c", 10 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "title_text@rainbowpie_ui_common.text_label": {
                                  // 보여줄 글자
                                  "text": "('rainbowpie.ui.notification.features_disabled.' + $rainbowpie_ui_flag_notification_features_disabled_reason)",
                                  // 조건에 따라 변수 값을 바꾸기
                                  "variables": [
                                    {
                                      // 이 조건이 맞으면 적용
                                      "requires": "(not ($rainbowpie_ui_flag_server_identifier = ''))",
                                      // 오버라이드 가능한 변수
                                      "$rainbowpie_ui_flag_notification_features_disabled_reason": "server"
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "padding_0": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ 1, 0 ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "resourcepack_name_text@rainbowpie_ui_common.text_label": {
                                  // 보여줄 글자
                                  "text": "$rainbowpie_ui_flag_resourcepack_displayname",
                                  // ?? (R,G,B,A)
                                  "color": [ 1.0, 1.0, 0.333 ],
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "(not ($rainbowpie_ui_flag_server_displayname = ''))"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "server_name_text@rainbowpie_ui_common.text_label": {
                                  // 보여줄 글자
                                  "text": "$rainbowpie_ui_flag_server_displayname",
                                  // ?? (R,G,B,A)
                                  "color": [ 1.0, 1.0, 0.333 ],
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "($rainbowpie_ui_flag_server_displayname = '')"
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "features_disabled_text@rainbowpie_ui_common.text_label": {
                            // 보여줄 글자
                            "text": "rainbowpie.ui.notification.features_disabled.text"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      // New Player Joined Toast
      {
        // ???/?? ??
        "player_joined_toast": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 0, 0 ],
          // 기준점에서 이동하는 거리
          "offset": [ 4, 0 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_ae054b5d)",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "player_grid@rainbowpieui_hud.player_grid": {
                // 가로/세로 크기
                "size": [ 0, "default" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // ??? ?? ?
                "grid_item_template": "rainbowpieui_hud.player_joined_toast_item"
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "override_tab_hotkey@rainbowpieui_hud.override_tab_hotkey": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_feature_hud_tablist)",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 125
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "rainbowpie_hotbar@rainbowpieui_hud.rainbowpie_hotbar": {
          // 완전히 제거(공간도 없음)
          "ignored": "($rainbowpie_ui_flag_hud_hotbar_mode = 0)",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 22,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#hud_visible_centered",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            },
            {
              // 가져올 값 이름
              "binding_name": "#hud_visible_centered_touch",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            },
            {
              // 가져올 값 이름
              "binding_name": "#hotbar_visible_not_centered",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            },
            {
              // 가져올 값 이름
              "binding_name": "#show_survival_ui"
            },
            {
              // 가져올 값 이름
              "binding_name": "#is_creative_mode"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#show_survival_ui or #is_creative_mode)",
              // 결과가 들어갈 속성
              "target_property_name": "#is_hotbar_needed"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#hud_visible_centered or #hud_visible_centered_touch or #hotbar_visible_not_centered) and #is_hotbar_needed)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "rainbowpie_chat@rainbowpieui_hud.rainbowpie_chat": {
          // 완전히 제거(공간도 없음)
          "ignored": "($touch or $rainbowpie_ui_flag_disable_custom_chat_ui)",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 20
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "rainbowpie_chat_touch@rainbowpieui_hud.rainbowpie_chat_touch": {
          // 완전히 제거(공간도 없음)
          "ignored": "((not $touch) or not $rainbowpie_ui_flag_6d2ac350 or $rainbowpie_ui_flag_disable_custom_chat_ui)",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 20
        }
      }
    ]
  },

  // ???/?? ??
  "rainbowpie_chat_touch": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$chat_panel_size": [ "50% - 90px", "100% - 24px" ],
    // 가로/세로 크기
    "size": "$chat_panel_size",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_hud_chat_halfscreen",
        // 오버라이드 가능한 변수
        "$chat_panel_size": [ "50%", "100% - 24px" ]
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "debug01@rainbowpie_ui_common.debug_draw": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_debug_name": "rainbowpie_chat"
        }
      },
      {
        // ???/?? ??
        "chat_stack": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "paper_doll_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 50 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#paper_doll_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "non_centered_gui_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 32 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#hud_visible_not_centered",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "number_of_days_played": {
                // 완전히 제거(공간도 없음)
                "ignored": "($rainbowpie_ui_flag_hud_hotbar_mode = 2)",
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100%c + 6px", 12 ],
                // 사용할 이미지 경로
                "texture": "textures/ui/Black",
                // ???
                "alpha": 0.5,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "number_of_days_played_text@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,

                      // ?? ??
                      "enable_profanity_filter": false,
                      // ?? (R,G,B,A)
                      "color": "$chat_text_color",
                      // 보여줄 글자
                      "text": "#text",

                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#number_of_days_played_text",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#text",
                          // ?? ???
                          "binding_condition": "always_when_visible",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "#hud_text_background_alpha"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "((#hud_text_background_alpha > (1 - #hud_text_background_alpha)) / 3)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible",
                          // 완전히 제거(공간도 없음)
                          "ignored": "(not $rainbowpie_ui_flag_f733129c)"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "number_of_days_played_text_shadow@rainbowpie_ui_common.text_label_notheme": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_flag_f733129c)",
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,

                      // ?? ??
                      "enable_profanity_filter": false,
                      // ?? (R,G,B,A)
                      "color": "$chat_text_color",
                      // 보여줄 글자
                      "text": "#text",
                      // ?? ??
                      "shadow": true,

                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#number_of_days_played_text",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#text",
                          // ?? ???
                          "binding_condition": "always_when_visible",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "#hud_text_background_alpha"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "((#hud_text_background_alpha < (1 - #hud_text_background_alpha)) / 3)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#number_of_days_played_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // ?? ???
                    "binding_condition": "always",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#hud_text_background_alpha",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#alpha",
                    // 완전히 제거(공간도 없음)
                    "ignored": "(not $rainbowpie_ui_flag_f733129c)"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "player_position": {
                // 완전히 제거(공간도 없음)
                "ignored": "($rainbowpie_ui_flag_hud_hotbar_mode = 2)",
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100%c + 6px", 12 ],
                // 사용할 이미지 경로
                "texture": "textures/ui/Black",
                // ???
                "alpha": 0.5,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "player_position_text@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,

                      // ?? ??
                      "enable_profanity_filter": false,
                      // ?? (R,G,B,A)
                      "color": "$chat_text_color",
                      // 보여줄 글자
                      "text": "#text",

                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#player_position_text",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#text",
                          // ?? ???
                          "binding_condition": "always_when_visible",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "#hud_text_background_alpha"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "((#hud_text_background_alpha > (1 - #hud_text_background_alpha)) / 3)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible",
                          // 완전히 제거(공간도 없음)
                          "ignored": "(not $rainbowpie_ui_flag_f733129c)"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "player_position_text_shadow@rainbowpie_ui_common.text_label_notheme": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_flag_f733129c)",
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,

                      // ?? ??
                      "enable_profanity_filter": false,
                      // ?? (R,G,B,A)
                      "color": "$chat_text_color",
                      // 보여줄 글자
                      "text": "#text",
                      // ?? ??
                      "shadow": true,

                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#player_position_text",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#text",
                          // ?? ???
                          "binding_condition": "always_when_visible",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "#hud_text_background_alpha"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "((#hud_text_background_alpha < (1 - #hud_text_background_alpha)) / 3)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#player_position_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // ?? ???
                    "binding_condition": "always",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#hud_text_background_alpha",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#alpha",
                    // 완전히 제거(공간도 없음)
                    "ignored": "(not $rainbowpie_ui_flag_f733129c)"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "chat_panel@rainbowpieui_hud.chat_panel": {
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // ?? ?? ?
                "max_size": [ "100%", "50%" ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "live_player_renderer": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 22, 22 ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_0ffd0593)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "live_player": {
          // 특수 렌더러(그라디언트/플레이어 등)
          "type": "custom",
          // 커스텀 렌더러 종류
          "renderer": "live_player_renderer",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 애니메이션 목록
          "anims": [
            "@common.screen_exit_size_animation_push",
            "@common.screen_exit_size_animation_pop",
            "@common.screen_entrance_size_animation_push",
            "@common.screen_entrance_size_animation_pop"
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#paper_doll_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "hud_root_panel_animation": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 끝 값
    "to": [ "100%", "100%" ],
    // 시작 값
    "from": [ "100%", "125%" ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "hud_root_panel_animation_pop": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 끝 값
    "to": [ "100%", "100%" ],
    // 시작 값
    "from": [ "100%", "125%" ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "hud_root_panel_back_animation": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ "100%", "100%" ],
    // 끝 값
    "to": [ "100%", "125%" ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "hud_root_panel_back_animation_pop": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ "100%", "100%" ],
    // 끝 값
    "to": [ "100%", "125%" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "hidehudtip_background_out_in": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_expo",
    // 걸리는 시간(초)
    "duration": 0,
    // 시작 값
    "from": 0.6,
    // 끝 값
    "to": 0.6,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_hud.hidehudtip_background_out_wait",
    // ?? ??
    "play_event": "button.hide_gui_all"
  },

  // ???/?? ??
  "hidehudtip_background_out_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 3,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_hud.hidehudtip_background_out_anim"
  },

  // ???/?? ??
  "hidehudtip_background_out_anim": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_expo",
    // 걸리는 시간(초)
    "duration": 2,
    // 시작 값
    "from": 0.6,
    // 끝 값
    "to": 0
  },

  // ???/?? ??
  "hidehudtip_text_out_in": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_expo",
    // 걸리는 시간(초)
    "duration": 0,
    // 시작 값
    "from": 1,
    // 끝 값
    "to": 1,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_hud.hidehudtip_text_out_wait",
    // ?? ??
    "play_event": "button.hide_gui_all"
  },

  // ???/?? ??
  "hidehudtip_text_out_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 3,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_hud.hidehudtip_text_out_anim"
  },

  // ???/?? ??
  "hidehudtip_text_out_anim": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_expo",
    // 걸리는 시간(초)
    "duration": 2,
    // 시작 값
    "from": 1,
    // 끝 값
    "to": 0
  },

  // ???/?? ??
  "hidehudtip_border_out_in": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_expo",
    // 걸리는 시간(초)
    "duration": 0,
    // 시작 값
    "from": "$rainbowpie_ui_theme_button_border_default_alpha",
    // 끝 값
    "to": "$rainbowpie_ui_theme_button_border_default_alpha",
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_hud.hidehudtip_border_out_wait",
    // ?? ??
    "play_event": "button.hide_gui_all"
  },

  // ???/?? ??
  "hidehudtip_border_out_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 3,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_hud.hidehudtip_border_out_anim"
  },

  // ???/?? ??
  "hidehudtip_border_out_anim": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_expo",
    // 걸리는 시간(초)
    "duration": 2,
    // 시작 값
    "from": "$rainbowpie_ui_theme_button_border_default_alpha",
    // 끝 값
    "to": 0
  },

  // ???/?? ??
  "rainbowpie_chat": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$chat_panel_size": [ "50% - 90px", "100% - 24px" ],
    // 가로/세로 크기
    "size": "$chat_panel_size",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -12 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_left",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_hud_chat_halfscreen",
        // 오버라이드 가능한 변수
        "$chat_panel_size": [ "50%", "100% - 24px" ]
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_149baa36",
        // 오버라이드 가능한 변수
        "$chat_panel_size": [ "288px", "100% - 24px" ]
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "debug01@rainbowpie_ui_common.debug_draw": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_debug_name": "rainbowpie_chat"
        }
      },
      {
        // ???/?? ??
        "chat_stack": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "chat_panel@rainbowpieui_hud.chat_panel": {}
            },
            {
              // ???/?? ??
              "player_position": {
                // 완전히 제거(공간도 없음)
                "ignored": "($rainbowpie_ui_flag_hud_hotbar_mode = 2)",
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100%cm + 6px", 12 ],
                // 사용할 이미지 경로
                "texture": "textures/ui/Black",
                // ???
                "alpha": 0.5,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "player_position_text@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,

                      // ?? ??
                      "enable_profanity_filter": false,
                      // ?? (R,G,B,A)
                      "color": "$chat_text_color",
                      // 보여줄 글자
                      "text": "#text",

                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#player_position_text",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#text",
                          // ?? ???
                          "binding_condition": "always_when_visible",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "#hud_text_background_alpha"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "((#hud_text_background_alpha > (1 - #hud_text_background_alpha)) / 3)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible",
                          // 완전히 제거(공간도 없음)
                          "ignored": "(not $rainbowpie_ui_flag_f733129c)"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "player_position_text_shadow@rainbowpie_ui_common.text_label_notheme": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_flag_f733129c)",
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,

                      // ?? ??
                      "enable_profanity_filter": false,
                      // ?? (R,G,B,A)
                      "color": "$chat_text_color",
                      // 보여줄 글자
                      "text": "#text",
                      // ?? ??
                      "shadow": true,

                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#player_position_text",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#text",
                          // ?? ???
                          "binding_condition": "always_when_visible",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "#hud_text_background_alpha"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "((#hud_text_background_alpha < (1 - #hud_text_background_alpha)) / 3)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#player_position_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // ?? ???
                    "binding_condition": "always",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#hud_text_background_alpha",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#alpha",
                    // 완전히 제거(공간도 없음)
                    "ignored": "(not $rainbowpie_ui_flag_f733129c)"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "number_of_days_played": {
                // 완전히 제거(공간도 없음)
                "ignored": "($rainbowpie_ui_flag_hud_hotbar_mode = 2)",
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100%cm + 6px", 12 ],
                // 사용할 이미지 경로
                "texture": "textures/ui/Black",
                // ???
                "alpha": 0.5,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "number_of_days_played_text@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,

                      // ?? ??
                      "enable_profanity_filter": false,
                      // ?? (R,G,B,A)
                      "color": "$chat_text_color",
                      // 보여줄 글자
                      "text": "#text",

                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#number_of_days_played_text",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#text",
                          // ?? ???
                          "binding_condition": "always_when_visible",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "#hud_text_background_alpha"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "((#hud_text_background_alpha > (1 - #hud_text_background_alpha)) / 3)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible",
                          // 완전히 제거(공간도 없음)
                          "ignored": "(not $rainbowpie_ui_flag_f733129c)"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "number_of_days_played_text_shadow@rainbowpie_ui_common.text_label_notheme": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_flag_f733129c)",
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,

                      // ?? ??
                      "enable_profanity_filter": false,
                      // ?? (R,G,B,A)
                      "color": "$chat_text_color",
                      // 보여줄 글자
                      "text": "#text",
                      // ?? ??
                      "shadow": true,

                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#number_of_days_played_text",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#text",
                          // ?? ???
                          "binding_condition": "always_when_visible",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "#hud_text_background_alpha"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "((#hud_text_background_alpha < (1 - #hud_text_background_alpha)) / 3)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#number_of_days_played_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // ?? ???
                    "binding_condition": "always",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#hud_text_background_alpha",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#alpha",
                    // 완전히 제거(공간도 없음)
                    "ignored": "(not $rainbowpie_ui_flag_f733129c)"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "player_position_padding": {
                // 완전히 제거(공간도 없음)
                "ignored": "($rainbowpie_ui_flag_hud_hotbar_mode = 2)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 12, 12 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "(not #player_position_visible)",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // ?? ???
                    "binding_condition": "always",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "number_of_days_played_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 12, 12 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "(not #number_of_days_played_visible)",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // ?? ???
                    "binding_condition": "always",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global",
                    // 완전히 제거(공간도 없음)
                    "ignored": "($rainbowpie_ui_flag_hud_hotbar_mode = 2)"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "chat_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "fill" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "debug01@rainbowpie_ui_common.debug_draw": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_debug_name": "chat_panel"
        }
      },
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left",
          // 목록 아이템을 자동으로 생성
          "factory": {
            // ?? ??
            "name": "chat_item_factory",
            // ?? ?? ?
            "max_children_size": "$max_children_size",
            // 팩토리 템플릿 매핑
            "control_ids": {
              // ?? ??
              "chat_item": "chat_item@rainbowpieui_hud.chat_grid_item"
            },
            // ???/?? ??
            "factory_variables": [
              "$rainbowpie_ui_theme_global_font_name",
              "$rainbowpie_ui_theme_global_font_backup_name",
              "$rainbowpie_ui_flag_chat_use_ui_font",
              "$rainbowpie_ui_flag_chatui_default_font"
            ]
          },
          // 오버라이드 가능한 변수
          "$max_children_size": 50,
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$rainbowpie_ui_flag_149baa36",
              // 오버라이드 가능한 변수
              "$max_children_size": 10
            }
          ]
        }
      }
    ]
  },


  // ???/?? ??
  "chat_grid_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_left",
    // ?? ????
    "clips_children": true,
    // 애니메이션 목록
    "anims": [
      "@rainbowpieui_hud.chat_content_panel_anim",
      "@rainbowpieui_hud.destroy_chat_wait"
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "(not #on_new_death_screen)",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ],
    // 오버라이드 가능한 변수
    "$chat_bg_opacity": 0.4,
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_chatui_default_font",
        // 오버라이드 가능한 변수
        "$rainbowpie_ui_theme_global_font_name": "default",
        // 오버라이드 가능한 변수
        "$rainbowpie_ui_theme_global_font_backup_name": "default"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_64fd7c05",
        // 오버라이드 가능한 변수
        "$chat_bg_opacity": "$chat_background_opacity"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "chat_text@rainbowpieui_hud.chat_label": {
          // ?? ?? ?
          "max_size": [ "100% - 10px", "default" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 33,
          // ?? ??
          "shadow": "(($chat_bg_opacity * 100) < 40)",
          // 애니메이션 목록
          "anims": [
            "@rainbowpieui_hud.anim_chat_intro_offset",
            "@rainbowpieui_hud.anim_chat_text_wait"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "chat_background": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/Black",
                // ???
                "alpha": "$chat_bg_opacity",
                // 가로/세로 크기
                "size": [ "100% + 5px", "default" ],
                // 기준점에서 이동하는 거리
                "offset": [ -1, 0 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": -1,
                // 애니메이션 목록
                "anims": [
                  "@rainbowpieui_hud.anim_chat_bg_wait"
                ]
              }
            }
          ]
        }
      }

    ]
  },

  // ???/?? ??
  "anim_chat_intro_offset": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_cubic",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_chat_transition_time",
    // 시작 값
    "from": [ "-100%", 0 ],
    // 끝 값
    "to": [ 2, 0 ]
  },

  // ???/?? ??
  "chat_content_panel_anim": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "out_cubic",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_chat_transition_time",
    // 시작 값
    "from": [ "100%", 0 ],
    // 끝 값
    "to": [ "100%", "100%c" ]
  },

  // ???/?? ??
  "anim_chat_text_alpha": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_quart",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_chat_transition_time",
    // 시작 값
    "from": 1,
    // 끝 값
    "to": 0
  },

  // ???/?? ??
  "anim_chat_text_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": "$chat_item_lifetime",
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_hud.anim_chat_text_alpha"
  },

  // Set size to [ 0, 0 ] before destroying chat_grid_item
  "destroy_chat_grid_item": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "in_quart",
    // ?? ??
    "destroy_at_end": "chat_grid_item",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_chat_transition_time",
    // 시작 값
    "from": [ "100%", "100%c" ],
    // 끝 값
    "to": [ "100%", 0 ]
  },

  // ???/?? ??
  "destroy_chat_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": "$chat_item_lifetime",
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_hud.destroy_chat_grid_item"
  },

  // ???/?? ??
  "anim_chat_bg_alpha": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_quart",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_chat_transition_time",
    // 시작 값
    "from": "$chat_bg_opacity",
    // 끝 값
    "to": "((not ($chat_bg_opacity = 0)) * 0.1)"
  },

  // ???/?? ??
  "anim_chat_bg_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": "$chat_item_lifetime",
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_hud.anim_chat_bg_alpha"
  },

  // ???/?? ??
  "chat_label": {
    // 글자 표시
    "type": "label",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 31,
    // 보여줄 글자
    "text": "#text",
    // 가로/세로 크기
    "size": [ "default", "default" ],

    // ?? ??
    "shadow": false,
    // ?? ??
    "enable_profanity_filter": "$rainbowpie_ui_flag_chat_message_profanity_filter",
    // ?? ??
    "localize": false,
    // ?? (R,G,B,A)
    "color": "$chat_text_color",
    // ??
    "font_type": "$chat_font_type",
    // ?? ?? ??
    "font_scale_factor": "$chat_font_scale_factor",
    // ??/?? ?
    "line_padding": "$chat_line_spacing",
    // 애니메이션 목록
    "anims": [
      "@hud.anim_chat_txt_wait"
    ],
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "($rainbowpie_ui_flag_chat_use_ui_font and ($chat_font_type = 'default'))",
        // 오버라이드 가능한 변수
        "$chat_font_type": "$rainbowpie_ui_theme_global_font_name"
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#chat_text",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "chat_text_grid",
        // ?? ???
        "binding_condition": "once"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "borderless_button@common_buttons.light_content_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_hud.borderless_button_panel",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color": [ 0.0, 0.0, 0.0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha": 0.2,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_border_enabled": false,
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3,
    // 포커스 가능 여부
    "focus_enabled": false,
    // 처음 포커스 우선순위
    "default_focus_precedence": 10,
    // ?? ??
    "prevent_touch_input": true,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#inventory_touch_button",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      }
    ]
  },

  // ???/?? ??
  "borderless_button_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$button_controls|default": [],
    // 이 안에 들어가는 부품 목록
    "controls": "$button_controls"
  },

  // ???/?? ??
  "rainbowpie_hotbar": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 42 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "debug01@rainbowpie_ui_common.debug_draw": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_debug_name": "rainbowpie_hotbar"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "horse_jump_rend@hud.horse_jump_renderer": {
          // 기준점(어디에서 시작할지)
          "anchor_from" : "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to" : "top_middle",
          // 가로/세로 크기
          "size" : [ 180, 5 ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 11 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 17
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dash_rend@hud.dash_renderer": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 가로/세로 크기
          "size" : [ 180, 5 ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 11 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 17
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "compatibility_panel@rainbowpieui_compatibility_config.compatibility_variables": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "exp_progress_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 180, 16 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 12,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "debug01@rainbowpie_ui_common.debug_draw": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_debug_name": "exp_progress_panel"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "progress_text_label@rainbowpie_ui_common.text_label_notheme": {
                      // ?? ??
                      "shadow": true,
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 7,
                      // 보여줄 글자
                      "text": "#level_number",
                      // ?? (R,G,B,A)
                      "color": "$experience_text_color",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#level_number",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "#level_number_visible",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "expbar_empty_text@rainbowpie_ui_common.text_label_notheme": {
                      // ?? ??
                      "shadow": true,
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 7,
                      // 보여줄 글자
                      "text": "$rainbowpie_ui_flag_hud_expbar_empty_text",
                      // ?? (R,G,B,A)
                      "color": "$experience_text_color",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "(not #level_number_visible)",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "empty_progress_bar": {
                      // 이미지 표시
                      "type": "image",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_expbar_texture": "textures/ui/White",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_expbar_size": [ "100%", 4 ],
                      // 사용할 이미지 경로
                      "texture": "$rainbowpie_localui_this_expbar_texture",
                      // 가로/세로 크기
                      "size": "$rainbowpie_localui_this_expbar_size",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_experience_empty_color",
                      // ???
                      "alpha": "$rainbowpie_ui_theme_experience_empty_alpha",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "empty_progress_bar": {
                            // 이미지 표시
                            "type": "image",
                            // 사용할 이미지 경로
                            "texture": "$rainbowpie_localui_this_expbar_texture",
                            // 가로/세로 크기
                            "size": "$rainbowpie_localui_this_expbar_size",
                            // ?? (R,G,B,A)
                            "color": "$rainbowpie_ui_theme_experience_full_color",
                            // ???
                            "alpha": "$rainbowpie_ui_theme_experience_full_alpha",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 2,
                            // ??? ??
                            "clip_direction": "left",
                            // ?? ??
                            "clip_pixelperfect": false,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#exp_progress",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#clip_ratio",
                                // 게임이 주는 전역 값 연결
                                "binding_type": "global"
                              }
                            ]
                          }
                        }
                      ],
                      // 조건에 따라 변수 값을 바꾸기
                      "variables": [
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$rainbowpie_ui_flag_hud_hotbar_rounded",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_expbar_texture": "($rainbowpie_ui_path_home + '/r_white_pill')",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_expbar_size": [ "100%", 5 ]
                        }
                      ]
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#show_survival_ui"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#hotbar_with_locator_bar",
                    // 완전히 제거(공간도 없음)
                    "ignored": "(not (($compatibility_min_version > 1218000) or ($compatibility_min_version = 1218000)))"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#hotbar_with_xp_bar"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#hotbar_with_xp_bar)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible",
                    // 완전히 제거(공간도 없음)
                    "ignored": "(($compatibility_min_version > 1218000) or ($compatibility_min_version = 1218000))"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#show_survival_ui and (#hotbar_with_xp_bar or #hotbar_with_locator_bar))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible",
                    // 완전히 제거(공간도 없음)
                    "ignored": "(not (($compatibility_min_version > 1218000) or ($compatibility_min_version = 1218000)))"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "locator_bar_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 180, 16 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 12,
                // 완전히 제거(공간도 없음)
                "ignored": "(not (($compatibility_min_version > 1218000) or ($compatibility_min_version = 1218000)))",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "locator_bar@hud.locator_bar": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "($rainbowpie_ui_flag_5354b722 and $mouse)",
                      // 가로/세로 크기
                      "size": [ "100%", 5 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0.5 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 10
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#hotbar_with_locator_bar",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "hotbar_grid_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar_grid@rainbowpieui_hud.hotbar_grid": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점에서 이동하는 거리
                "offset": "$offset",
                // 오버라이드 가능한 변수
                "$offset": [ 0, -1 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "($rainbowpie_ui_flag_hud_hotbar_mode = 1)",
                    // 오버라이드 가능한 변수
                    "$offset": [ 0, -1.5 ]
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#hotbar_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_hidehud_button@rainbowpieui_hud.borderless_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.hide_gui_all",
          // ??/???
          "enabled": true,
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 가로/세로 크기
          "size": [ 20, 24 ],
          // 기준점에서 이동하는 거리
          "offset": [ -100, -0.5 ],
          // 오버라이드 가능한 변수
          "$button_controls": [
            {
              // ???/?? ??
              "icon_text": {
                // 글자 표시
                "type": "label",
                // ??
                "font_type": "default",
                // 보여줄 글자
                "text": "H",
                // ???
                "alpha": 0.65,
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#layout_customization_main_panel_visible"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not #layout_customization_main_panel_visible)",
              // 결과가 들어갈 속성
              "target_property_name": "#enabled"
            },
            {
              // 가져올 값 이름
              "binding_name": "#inventory_touch_button",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_elipses_button@rainbowpieui_hud.borderless_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.hotbar_inventory_button",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 가로/세로 크기
          "size": [ 20, 24 ],
          // 기준점에서 이동하는 거리
          "offset": [ 100, -0.5 ],
          // 오버라이드 가능한 변수
          "$button_controls": [
            {
              // ???/?? ??
              "elipses": {
                // 이미지 표시
                "type": "image",
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 가로/세로 크기
                "size": [ 10, 10 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0.0, 0.5 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 30,
                // 사용할 이미지 경로
                "texture": "$icon_texture",
                // 오버라이드 가능한 변수
                "$icon_texture": "($rainbowpie_ui_path_theme + '/icon/hud/inventory')",
                // ???
                "alpha": 0.65,
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "(not ($rainbowpieui_branch_type = 'release'))",
                    // 오버라이드 가능한 변수
                    "$icon_texture": "($rainbowpie_ui_path_theme + '/icon/hud/inventory_ci')"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "hotbar_background": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "animated_hotbar_slot_unselected_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 목록 이름
                "collection_name": "hotbar_items",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 가로/세로 크기
                "size": [ 180, 24 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, -0.5 ],
                // 오버라이드 가능한 변수
                "$hotbar_collection_name": "hotbar_items",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_flag_5e1f3f4e)",
                // ?? ????
                "clips_children": true,
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "slot_0@rainbowpieui_hud.animated_hotbar_slot_unselected_panel": {
                      // 오버라이드 가능한 변수
                      "$collection_index": 0
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "slot_1@rainbowpieui_hud.animated_hotbar_slot_unselected_panel": {
                      // 오버라이드 가능한 변수
                      "$collection_index": 1
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "slot_2@rainbowpieui_hud.animated_hotbar_slot_unselected_panel": {
                      // 오버라이드 가능한 변수
                      "$collection_index": 2
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "slot_3@rainbowpieui_hud.animated_hotbar_slot_unselected_panel": {
                      // 오버라이드 가능한 변수
                      "$collection_index": 3
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "slot_4@rainbowpieui_hud.animated_hotbar_slot_unselected_panel": {
                      // 오버라이드 가능한 변수
                      "$collection_index": 4
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "slot_5@rainbowpieui_hud.animated_hotbar_slot_unselected_panel": {
                      // 오버라이드 가능한 변수
                      "$collection_index": 5
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "slot_6@rainbowpieui_hud.animated_hotbar_slot_unselected_panel": {
                      // 오버라이드 가능한 변수
                      "$collection_index": 6
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "slot_7@rainbowpieui_hud.animated_hotbar_slot_unselected_panel": {
                      // 오버라이드 가능한 변수
                      "$collection_index": 7
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "slot_8@rainbowpieui_hud.animated_hotbar_slot_unselected_panel": {
                      // 오버라이드 가능한 변수
                      "$collection_index": 8
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "background_v1": {
                // 보이기/숨기기(공간 유지)
                "visible": "($rainbowpie_ui_flag_hud_hotbar_mode = 1)",
                // 이미지 표시
                "type": "image",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 가로/세로 크기
                "size": [ 180, 24 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, -0.5 ],
                // ???
                "alpha": 0.2,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_this_hotbar_texture": "textures/ui/Black",
                // 사용할 이미지 경로
                "texture": "$rainbowpie_localui_this_hotbar_texture",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$rainbowpie_ui_flag_hud_hotbar_rounded",
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_this_hotbar_texture": "($rainbowpie_ui_path_home + '/r_black')"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "background_v2": {
                // 보이기/숨기기(공간 유지)
                "visible": "($rainbowpie_ui_flag_hud_hotbar_mode = 2)",
                // 이미지 표시
                "type": "image",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 가로/세로 크기
                "size": [ "100%", 24 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // ???
                "alpha": 0.3,
                // 사용할 이미지 경로
                "texture": "textures/ui/Black",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "player_position_text@rainbowpie_ui_common.text_label_notheme": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not ($rainbowpie_ui_flag_hud_hotbar_mode = 2))",
                      // 기준점에서 이동하는 거리
                      "offset": [ 2, 1.5 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,

                      // ?? ??
                      "enable_profanity_filter": false,
                      // 보여줄 글자
                      "text": "#text",
                      // ?? ??
                      "shadow": false,

                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#player_position_text",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#text",
                          // ?? ???
                          "binding_condition": "always",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "#player_position_visible",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible",
                          // ?? ???
                          "binding_condition": "always",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "player_count": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_left",
                      // 가로/세로 크기
                      "size": [ "100%", 10 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 2, -1.5 ],
                      // ?? ????
                      "clips_children": true,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "player_grid@rainbowpieui_hud.player_grid": {
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_playercount_textshadow": false,
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_left",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_left",
                            // 가로/세로 크기
                            "size": [ "100%", "100%c" ],
                            // ??? ?? ?
                            "grid_item_template": "rainbowpieui_hud.player_count",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_playerlist_full": true
                          }
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "player_info@rainbowpieui_hud.player_grid": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",
                      // 가로/세로 크기
                      "size": [ 300, 24 ],
                      // ??? ?? ?
                      "grid_item_template": "rainbowpieui_hud.player_info_panel"
                    }
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#hotbar_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "hotbar_grid": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 오버라이드 가능한 변수
    "$hotbar_collection_name|default": "hotbar_items",
    // ??? ?? ?
    "grid_item_template": "rainbowpieui_hud.gui_hotbar_grid_item",
    // ??? ?? ?
    "grid_dimension_binding": "#hotbar_grid_dimensions",
    // 목록 이름
    "collection_name": "$hotbar_collection_name",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#hotbar_grid_dimensions",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      }
    ]
  },

  // ???/?? ??
  "hotbar_slot_selected_image": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // 가로/세로 크기
    "size": [ 20, 24 ],
    // ???
    "alpha": 0.3,
    // 겹치는 순서(숫자 클수록 위)
    "layer": 8,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#slot_selected",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$hotbar_collection_name"
      }
    ]
  },

  // ???/?? ??
  "anim_hotbar_slot_selected": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_out_sine",
    // 걸리는 시간(초)
    "duration": 0.25,
    // 시작 값
    "from": 0.0,
    // 끝 값
    "to": 0.3
  },

  // ???/?? ??
  "anim_hotbar_slot_unselected": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_out_sine",
    // 걸리는 시간(초)
    "duration": 0.25,
    // 시작 값
    "from": 0.3,
    // 끝 값
    "to": 0.0
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "anim_hotbar_slot_alpha_left@rainbowpieui_hud.anim_hotbar_slot_unselected": {
    // ?? ??
    "destroy_at_end": "animated_hotbar_slot_unselected_image_left"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "anim_hotbar_slot_alpha_right@rainbowpieui_hud.anim_hotbar_slot_unselected": {
    // ?? ??
    "destroy_at_end": "animated_hotbar_slot_unselected_image_right"
  },

  // ???/?? ??
  "anim_hotbar_slot_offset": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_cubic",
    // 걸리는 시간(초)
    "duration": 0.25
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "anim_hotbar_slot_offset_left@rainbowpieui_hud.anim_hotbar_slot_offset": {
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ "-100%x", 0 ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "anim_hotbar_slot_offset_right@rainbowpieui_hud.anim_hotbar_slot_offset": {
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ "100%x", 0 ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "animated_hotbar_slot_selected_image@rainbowpieui_hud.hotbar_slot_selected_image": {
    // 애니메이션 목록
    "anims": [
      "@rainbowpieui_hud.anim_hotbar_slot_selected"
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "animated_hotbar_slot_unselected_image@rainbowpieui_hud.hotbar_slot_selected_image": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [],
    // 애니메이션 목록
    "anims": [
      "@rainbowpieui_hud.anim_hotbar_slot_unselected"
    ]
  },

  // ???/?? ??
  "animated_hotbar_slot_panel": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_5e1f3f4e)",

    // 오버라이드 가능한 변수
    "$is_selected": true,
    // 오버라이드 가능한 변수
    "$factory_name": "hotbar_slot_selected_factory",
    // 오버라이드 가능한 변수
    "$factory_control_name": "rainbowpieui_hud.animated_hotbar_slot_selected_image",
    // 오버라이드 가능한 변수
    "$collection_length_binding": "(1 * #slot_selected)",
    // 오버라이드 가능한 변수
    "$unselected_factory_control_name": "rainbowpieui_hud.animated_hotbar_slot_unselected_image",

    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "(not $is_selected)",
        // 오버라이드 가능한 변수
        "$factory_name": "hotbar_slot_unselected_factory",
        // 오버라이드 가능한 변수
        "$factory_control_name": "$unselected_factory_control_name",
        // 오버라이드 가능한 변수
        "$collection_length_binding": "(1 * (not #slot_selected))"
      }
    ],

    // 목록 아이템을 자동으로 생성
    "factory": {
      // ?? ??
      "name": "$factory_name",
      // ??? ???
      "control_name": "$factory_control_name",
      // ?? ?? ?
      "max_children_size": 1
    },
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#slot_selected",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$hotbar_collection_name"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$collection_length_binding",
        // 결과가 들어갈 속성
        "target_property_name": "#collection_length"
      }
    ]
  },

  // ???/?? ??
  "anim_hotbar_slot_panel": {
    // 투명도 변화
    "anim_type": "alpha",
    // 걸리는 시간(초)
    "duration": 0
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "anim_hotbar_slot_panel_left@rainbowpieui_hud.anim_hotbar_slot_panel": {
    // 시작 값
    "from": 0,
    // 끝 값
    "to": 1,
    // ?? ??
    "play_event": "button.hotbar_inventory_left"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "anim_hotbar_slot_panel_right@rainbowpieui_hud.anim_hotbar_slot_panel": {
    // 시작 값
    "from": 0,
    // 끝 값
    "to": 1,
    // ?? ??
    "play_event": "button.hotbar_inventory_right"
  },

  // ???/?? ??
  "anim_hotbar_slot_destroy": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 0.0
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "anim_hotbar_slot_destroy_left@rainbowpieui_hud.anim_hotbar_slot_destroy": {
    // ?? ??
    "destroy_at_end": "animated_hotbar_slot_unselected_image_left",
    // ?? ??
    "play_event": "button.hotbar_inventory_left"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "anim_hotbar_slot_destroy_right@rainbowpieui_hud.anim_hotbar_slot_destroy": {
    // ?? ??
    "destroy_at_end": "animated_hotbar_slot_unselected_image_right",
    // ?? ??
    "play_event": "button.hotbar_inventory_right"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "animated_hotbar_slot_unselected_image_left@rainbowpieui_hud.hotbar_slot_selected_image": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [ ],
    // 애니메이션 목록
    "anims": [
      "@rainbowpieui_hud.anim_hotbar_slot_alpha_left",
      "@rainbowpieui_hud.anim_hotbar_slot_offset_left",
      "@rainbowpieui_hud.anim_hotbar_slot_destroy_left"
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "animated_hotbar_slot_unselected_image_right@rainbowpieui_hud.hotbar_slot_selected_image": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [ ],
    // 애니메이션 목록
    "anims": [
      "@rainbowpieui_hud.anim_hotbar_slot_alpha_right",
      "@rainbowpieui_hud.anim_hotbar_slot_offset_right",
      "@rainbowpieui_hud.anim_hotbar_slot_destroy_right"
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "hotbar_slot_unselected_panel@rainbowpieui_hud.animated_hotbar_slot_panel": {
    // ???
    "alpha": 0.0,
    // ??? ?? ?
    "propagate_alpha": true,
    // 오버라이드 가능한 변수
    "$is_selected": false,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "$hotbar_collection_name"
      },
      {
        // 가져올 값 이름
        "binding_name": "#slot_selected",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$hotbar_collection_name"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$collection_length_binding",
        // 결과가 들어갈 속성
        "target_property_name": "#collection_length"
      }
    ]
  },

  // ???/?? ??
  "hotbar_slot_input": {
    // 마우스/커서 따라다니는 패널
    "type": "input_panel",
    // 오버라이드 가능한 변수
    "$hotbar_slot_id|default": "button.slot1",
    // 오버라이드 가능한 변수
    "$hotbar_button_id|default": "button.hotbar_inventory_left",
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "$hotbar_slot_id",
        // 어떤 동작을 실행할지
        "to_button_id": "$hotbar_button_id",
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "consume_event": false
      }
    ]
  },

  // ???/?? ??
  "animated_hotbar_slot_unselected_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // ?? ??
    "collection_index": "$collection_index",
    // 가로/세로 크기
    "size": [ 20, "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "input_mappings": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ 0, 0 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#slot_selected",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$hotbar_collection_name"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "to_slot1_left@rainbowpieui_hud.hotbar_slot_input": {
                // 완전히 제거(공간도 없음)
                "ignored": "($collection_index < 1)",
                // 오버라이드 가능한 변수
                "$hotbar_slot_id": "button.slot1",
                // 오버라이드 가능한 변수
                "$hotbar_button_id": "button.hotbar_inventory_left"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "to_slot2_left@rainbowpieui_hud.hotbar_slot_input": {
                // 완전히 제거(공간도 없음)
                "ignored": "($collection_index < 2)",
                // 오버라이드 가능한 변수
                "$hotbar_slot_id": "button.slot2",
                // 오버라이드 가능한 변수
                "$hotbar_button_id": "button.hotbar_inventory_left"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "to_slot3_left@rainbowpieui_hud.hotbar_slot_input": {
                // 완전히 제거(공간도 없음)
                "ignored": "($collection_index < 3)",
                // 오버라이드 가능한 변수
                "$hotbar_slot_id": "button.slot3",
                // 오버라이드 가능한 변수
                "$hotbar_button_id": "button.hotbar_inventory_left"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "to_slot4_left@rainbowpieui_hud.hotbar_slot_input": {
                // 완전히 제거(공간도 없음)
                "ignored": "($collection_index < 4)",
                // 오버라이드 가능한 변수
                "$hotbar_slot_id": "button.slot4",
                // 오버라이드 가능한 변수
                "$hotbar_button_id": "button.hotbar_inventory_left"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "to_slot5_left@rainbowpieui_hud.hotbar_slot_input": {
                // 완전히 제거(공간도 없음)
                "ignored": "($collection_index < 5)",
                // 오버라이드 가능한 변수
                "$hotbar_slot_id": "button.slot5",
                // 오버라이드 가능한 변수
                "$hotbar_button_id": "button.hotbar_inventory_left"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "to_slot6_left@rainbowpieui_hud.hotbar_slot_input": {
                // 완전히 제거(공간도 없음)
                "ignored": "($collection_index < 6)",
                // 오버라이드 가능한 변수
                "$hotbar_slot_id": "button.slot6",
                // 오버라이드 가능한 변수
                "$hotbar_button_id": "button.hotbar_inventory_left"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "to_slot7_left@rainbowpieui_hud.hotbar_slot_input": {
                // 완전히 제거(공간도 없음)
                "ignored": "($collection_index < 7)",
                // 오버라이드 가능한 변수
                "$hotbar_slot_id": "button.slot7",
                // 오버라이드 가능한 변수
                "$hotbar_button_id": "button.hotbar_inventory_left"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "to_slot8_left@rainbowpieui_hud.hotbar_slot_input": {
                // 완전히 제거(공간도 없음)
                "ignored": "($collection_index < 8)",
                // 오버라이드 가능한 변수
                "$hotbar_slot_id": "button.slot8",
                // 오버라이드 가능한 변수
                "$hotbar_button_id": "button.hotbar_inventory_left"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "to_slot2_right@rainbowpieui_hud.hotbar_slot_input": {
                // 완전히 제거(공간도 없음)
                "ignored": "($collection_index > 0)",
                // 오버라이드 가능한 변수
                "$hotbar_slot_id": "button.slot2",
                // 오버라이드 가능한 변수
                "$hotbar_button_id": "button.hotbar_inventory_right"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "to_slot3_right@rainbowpieui_hud.hotbar_slot_input": {
                // 완전히 제거(공간도 없음)
                "ignored": "($collection_index > 1)",
                // 오버라이드 가능한 변수
                "$hotbar_slot_id": "button.slot3",
                // 오버라이드 가능한 변수
                "$hotbar_button_id": "button.hotbar_inventory_right"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "to_slot4_right@rainbowpieui_hud.hotbar_slot_input": {
                // 완전히 제거(공간도 없음)
                "ignored": "($collection_index > 2)",
                // 오버라이드 가능한 변수
                "$hotbar_slot_id": "button.slot4",
                // 오버라이드 가능한 변수
                "$hotbar_button_id": "button.hotbar_inventory_right"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "to_slot5_right@rainbowpieui_hud.hotbar_slot_input": {
                // 완전히 제거(공간도 없음)
                "ignored": "($collection_index > 3)",
                // 오버라이드 가능한 변수
                "$hotbar_slot_id": "button.slot5",
                // 오버라이드 가능한 변수
                "$hotbar_button_id": "button.hotbar_inventory_right"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "to_slot6_right@rainbowpieui_hud.hotbar_slot_input": {
                // 완전히 제거(공간도 없음)
                "ignored": "($collection_index > 4)",
                // 오버라이드 가능한 변수
                "$hotbar_slot_id": "button.slot6",
                // 오버라이드 가능한 변수
                "$hotbar_button_id": "button.hotbar_inventory_right"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "to_slot7_right@rainbowpieui_hud.hotbar_slot_input": {
                // 완전히 제거(공간도 없음)
                "ignored": "($collection_index > 5)",
                // 오버라이드 가능한 변수
                "$hotbar_slot_id": "button.slot7",
                // 오버라이드 가능한 변수
                "$hotbar_button_id": "button.hotbar_inventory_right"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "to_slot8_right@rainbowpieui_hud.hotbar_slot_input": {
                // 완전히 제거(공간도 없음)
                "ignored": "($collection_index > 6)",
                // 오버라이드 가능한 변수
                "$hotbar_slot_id": "button.slot8",
                // 오버라이드 가능한 변수
                "$hotbar_button_id": "button.hotbar_inventory_right"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "to_slot9_right@rainbowpieui_hud.hotbar_slot_input": {
                // 완전히 제거(공간도 없음)
                "ignored": "($collection_index > 7)",
                // 오버라이드 가능한 변수
                "$hotbar_slot_id": "button.slot9",
                // 오버라이드 가능한 변수
                "$hotbar_button_id": "button.hotbar_inventory_right"
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "animated_hotbar_slot_panel_left@rainbowpieui_hud.hotbar_slot_unselected_panel": {
          // 오버라이드 가능한 변수
          "$unselected_factory_control_name": "rainbowpieui_hud.animated_hotbar_slot_unselected_image_left",
          // ????? ?? ?
          "animation_reset_name": "button.hotbar_inventory_right",
          // 애니메이션 목록
          "anims": [
            "@rainbowpieui_hud.anim_hotbar_slot_panel_left"
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "animated_hotbar_slot_panel_right@rainbowpieui_hud.hotbar_slot_unselected_panel": {
          // 오버라이드 가능한 변수
          "$unselected_factory_control_name": "rainbowpieui_hud.animated_hotbar_slot_unselected_image_right",
          // ????? ?? ?
          "animation_reset_name": "button.hotbar_inventory_left",
          // 애니메이션 목록
          "anims": [
            "@rainbowpieui_hud.anim_hotbar_slot_panel_right"
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "gui_hotbar_grid_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [ 20, 22 ],
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 오버라이드 가능한 변수
    "$stack_count_required|default": true,
    // 오버라이드 가능한 변수
    "$durability_bar_required|default": true,
    // 오버라이드 가능한 변수
    "$storage_bar_required|default": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "hotbar_slot_selected_image_rounded": {
          // 완전히 제거(공간도 없음)
          "ignored": "((not $rainbowpie_ui_flag_hud_hotbar_rounded) or ($rainbowpie_ui_flag_hud_hotbar_mode = 2) or $rainbowpie_ui_flag_5e1f3f4e)",
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 20, 24 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar_slot_selected_image@rainbowpieui_hud.hotbar_slot_selected_image": {
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#collection_index",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "$hotbar_collection_name"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#slot_selected",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "$hotbar_collection_name"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#slot_selected and (not (#collection_index = 0) and not (#collection_index = 8)))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar_slot_selected_image_left@rainbowpieui_hud.hotbar_slot_selected_image": {
                // 사용할 이미지 경로
                "texture": "($rainbowpie_ui_path_home + '/r_white_left')",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#collection_index",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "$hotbar_collection_name"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#slot_selected",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "$hotbar_collection_name"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#slot_selected and (#collection_index = 0))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar_slot_selected_image_right@rainbowpieui_hud.hotbar_slot_selected_image": {
                // 사용할 이미지 경로
                "texture": "($rainbowpie_ui_path_home + '/r_white_right')",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#collection_index",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "$hotbar_collection_name"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#slot_selected",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "$hotbar_collection_name"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#slot_selected and (#collection_index = 8))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hotbar_slot_selected_image@rainbowpieui_hud.hotbar_slot_selected_image": {
          // 완전히 제거(공간도 없음)
          "ignored": "((not ((not $rainbowpie_ui_flag_hud_hotbar_rounded) or ($rainbowpie_ui_flag_hud_hotbar_mode = 2))) or $rainbowpie_ui_flag_5e1f3f4e)"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "animated_hotbar_slot_selected_image@rainbowpieui_hud.animated_hotbar_slot_panel": {}
      },
      {
        // ???/?? ??
        "hotbar_parent": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 18, 18 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "item_icon@hud.hotbar_hud_item_icon": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // 가로/세로 크기
                "size": [ 16, 16 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "item_count@common.stack_count_label": {
                // ??
                "font_type": "$rainbowpie_ui_theme_global_font_name",
                // ?? ?? ?
                "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 11,
                // 오버라이드 가능한 변수
                "$item_collection_name": "$hotbar_collection_name",
                // 오버라이드 가능한 변수
                "$stack_count_collection_name": "$hotbar_collection_name",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#inventory_stack_count",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "$stack_count_collection_name"
                  }
                ]
              }
            },
            { "hotbar_hint@edu_common.hotbar_hint": {} },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "item_dura@rainbowpieui_hud.item_durability": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 12
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "item_store@hud.item_storage": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 12
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "container_item_lock_overlay@hud.container_item_lock_overlay": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 15,
                // 가로/세로 크기
                "size": [ 16, 16 ]
              }
            }
          ]
        }
      },
      { "cooldown_renderer@hud.cooldown_renderer": { "layer": 18 } },
      { "hotbar_slot_button@hud.gui_hotbar_slot_button_prototype": {} }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "item_durability@common.durability_bar": {
    // 오버라이드 가능한 변수
    "$durability_bar_required|default": true,
    // 오버라이드 가능한 변수
    "$item_collection_name": "$hotbar_collection_name",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#item_durability_total_amount",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#progress_bar_total_amount",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$item_collection_name"
      },
      {
        // 가져올 값 이름
        "binding_name": "#item_durability_current_amount",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#progress_bar_current_amount",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$item_collection_name"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not (#progress_bar_current_amount = #progress_bar_total_amount))",
        // 결과가 들어갈 속성
        "target_property_name": "#touch_progress_bar_visible"
      }
    ]
  },

  // ???/?? ??
  "player_info_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 300, 24 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "player_image": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "#texture",
          // 가로/세로 크기
          "size": [ 21, 21 ],
          // 기준점에서 이동하는 거리
          "offset": [ -1.5, 0 ],
          // ??? ?? ???
          "texture_file_system": "#texture_source",
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#texture",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "players_collection"
            },
            {
              // 가져올 값 이름
              "binding_name": "#texture_source",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "players_collection"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "#texture_source",
              // 결과가 들어갈 속성
              "target_property_name": "#texture_file_system"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (#texture_source = 'RawPath'))",
              // 결과가 들어갈 속성
              "target_property_name": "#is_local_picture"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (#is_local_picture)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "player_image_local": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/icon_steve",
          // 가로/세로 크기
          "size": [ 21, 21 ],
          // 기준점에서 이동하는 거리
          "offset": [ -1.5, 0 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#texture_source",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "players_collection"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (#texture_source = 'RawPath'))",
              // 결과가 들어갈 속성
              "target_property_name": "#is_local_picture"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "#is_local_picture",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "player_name@rainbowpie_ui_common.title_label": {
          // ?? ?? ??
          "font_scale_factor": 1.8,
          // ?? ??
          "text_alignment": "right",
          // 보여줄 글자
          "text": "#gamertag",
          // 가로/세로 크기
          "size": [ "default", "default" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 기준점에서 이동하는 거리
          "offset": [ -26, 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#gamertag",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "players_collection"
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#collection_index",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "players_collection"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#collection_index = 0)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "override_tab_hotkey": {
    // 클릭 가능한 버튼
    "type": "button",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, "-200%" ],
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // ?? ??
    "pressed_control": "hud_elements",
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.scoreboard",
        // 어떤 동작을 실행할지
        "to_button_id": "button.scoreboard",
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "consume_event": false
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "hud_elements": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 0, "200%" ],
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "compatibility_panel@rainbowpieui_compatibility_config.compatibility_variables": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "rainbowpie_hotbar": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%", 42 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "locator_bar_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 180, 16 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 12,
                            // 완전히 제거(공간도 없음)
                            "ignored": "(not (($compatibility_min_version > 1218000) or ($compatibility_min_version = 1218000)))",
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "locator_bar@hud.locator_bar": {
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "(not ($rainbowpie_ui_flag_5354b722 and $mouse))",
                                  // 가로/세로 크기
                                  "size": [ "100%", 5 ],
                                  // 기준점에서 이동하는 거리
                                  "offset": [ 0, 0.5 ],
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "bottom_middle",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "bottom_middle",
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 10
                                }
                              }
                            ],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#hotbar_with_locator_bar",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible",
                                // 완전히 제거(공간도 없음)
                                "ignored": "$rainbowpie_ui_flag_19efcc11"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "playerlist_new": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_flag_d9ed3763)",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점에서 이동하는 거리
                "offset": [ 0, 13 ],
                // 가로/세로 크기
                "size": [ 443, 160 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "player_count": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 가로/세로 크기
                      "size": [ 221, 10 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, -12 ],
                      // ?? ????
                      "clips_children": true,
                      // 완전히 제거(공간도 없음)
                      "ignored": "($rainbowpie_ui_flag_1fa7dfd7)",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "player_grid@rainbowpieui_hud.player_grid": {
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_left",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_left",
                            // 가로/세로 크기
                            "size": [ 221, "100%c" ],
                            // ??? ?? ?
                            "grid_item_template": "rainbowpieui_hud.player_count_new",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_playerlist_full": true
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "player_count_v2": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 가로/세로 크기
                      "size": [ 221, 12 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, -10 ],
                      // ?? ????
                      "clips_children": true,
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_flag_1fa7dfd7)",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "player_grid@rainbowpieui_hud.player_grid": {
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_left",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_left",
                            // 가로/세로 크기
                            "size": [ 221, "100%c" ],
                            // ??? ?? ?
                            "grid_item_template": "rainbowpieui_hud.player_count_v2",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_playerlist_full": true
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "playerlist_in_player_grid_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 기준점에서 이동하는 거리
                      "offset": "$playerlist_offset",
                      // 오버라이드 가능한 변수
                      "$playerlist_offset": [ 0, 0 ],
                      // ?? ????
                      "clips_children": true,
                      // 조건에 따라 변수 값을 바꾸기
                      "variables": [
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$rainbowpie_ui_flag_1fa7dfd7",
                          // 오버라이드 가능한 변수
                          "$playerlist_offset": [ 0, 3 ]
                        }
                      ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "debug01@rainbowpie_ui_common.debug_draw": {
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_debug_name": "playerlist_panel"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "player_grid@rainbowpieui_hud.player_grid": {
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_left",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_left",
                            // 가로/세로 크기
                            "size": [ "100%", "100%c" ],
                            // ??? ?? ?
                            "grid_item_template": "rainbowpieui_hud.playerlist_in_player_grid",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_playerlist_full": true
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "playerlist_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 완전히 제거(공간도 없음)
                "ignored": "$rainbowpie_ui_flag_d9ed3763",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점에서 이동하는 거리
                "offset": [ 0, 13 ],
                // 가로/세로 크기
                "size": [ 330, 150 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "debug01@rainbowpie_ui_common.debug_draw": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_debug_name": "playerlist_panel"
                    }
                  },
                  {
                    // ???/?? ??
                    "player_count": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 가로/세로 크기
                      "size": [ 221, 10 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, -12 ],
                      // ?? ????
                      "clips_children": true,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "player_grid@rainbowpieui_hud.player_grid": {
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_left",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_left",
                            // 가로/세로 크기
                            "size": [ 221, "100%c" ],
                            // ??? ?? ?
                            "grid_item_template": "rainbowpieui_hud.player_count",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_playerlist_full": true
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "playerlist_stack_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 가로/세로 크기
                      "size": [ "100%c", 150 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "playerlist_0": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%c", 150 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "player_grid@rainbowpieui_hud.player_grid": {
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_middle",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_middle",
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_playerlist_start_index": 0,
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_playerlist_end_index": 10
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "playerlist_0_padding": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 1, 1 ]
                          }
                        },
                        {
                          // ???/?? ??
                          "playerlist_1": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%c", 150 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "player_grid@rainbowpieui_hud.player_grid": {
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_middle",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_middle",
                                  // 기준점에서 이동하는 거리
                                  "offset": [ 0, -143 ],
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_playerlist_start_index": 11,
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_playerlist_end_index": 21
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "tip_background": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 143 ],
                      // 가로/세로 크기
                      "size": [ 221, 12 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "player_grid@rainbowpieui_hud.player_grid": {
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 기준점에서 이동하는 거리
                            "offset": [ 0, -264 ],
                            // 가로/세로 크기
                            "size": [ 221, "100%c" ],
                            // ??? ?? ?
                            "grid_item_template": "rainbowpieui_hud.toomany_players_tip",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_playerlist_start_index": 22,
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_playerlist_end_index": 22
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "playerlist_in_player_grid": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 160 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "playerlist_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "playerlist_0": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%c", 156 ],
                // ?? ????
                "clips_children": true,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "player_grid@rainbowpieui_hud.player_grid": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_playerlist_start_index": 0,
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_playerlist_end_index": 0
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "playerlist_0_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 1, 1 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#collection_index",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#collection_index > 11)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "playerlist_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%c", 156 ],
                // ?? ????
                "clips_children": true,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "player_grid@rainbowpieui_hud.player_grid": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, -156 ],
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_playerlist_start_index": 0,
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_playerlist_end_index": 0
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#collection_index",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#collection_index > 11)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "playerlist_1_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 1, 1 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#collection_index",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#collection_index > 23)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "playerlist_2": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%c", 156 ],
                // ?? ????
                "clips_children": true,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "player_grid@rainbowpieui_hud.player_grid": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, -312 ],
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_playerlist_start_index": 0,
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_playerlist_end_index": 0
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#collection_index",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#collection_index > 23)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "playerlist_2_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 1, 1 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#collection_index",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#collection_index > 35)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "playerlist_3": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%c", 156 ],
                // ?? ????
                "clips_children": true,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "player_grid@rainbowpieui_hud.player_grid": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, -468 ],
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_playerlist_start_index": 0,
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_playerlist_end_index": 0
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#collection_index",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#collection_index > 35)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "player_count_v2_item": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "world_icon_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 10, 10 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "world_icon": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "($rainbowpie_ui_path_theme + '/icon/hud/tablist/world')",
                // 가로/세로 크기
                "size": [ 10, 10 ],
                // 기준점에서 이동하는 거리
                "offset": [ -2, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 완전히 제거(공간도 없음)
                "ignored": "$rainbowpie_ui_flag_custom_server_icon"
              }
            },
            {
              // ???/?? ??
              "server_icon": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "($rainbowpie_ui_path_home + '/server_icon/' + $rainbowpie_ui_flag_custom_server_icon_name)",
                // 가로/세로 크기
                "size": [ 10, 10 ],
                // 기준점에서 이동하는 거리
                "offset": [ -2, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_flag_custom_server_icon)"
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "world_name_text@rainbowpie_ui_common.title_label": {
          // 보여줄 글자
          "text": "#player_list_title",
          // 가로/세로 크기
          "size": [ "default", 10 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#player_list_title"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "spacer_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "fill", 1 ]
        }
      },
      {
        // ???/?? ??
        "player_icon_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 12, 10 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "player_icon": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "($rainbowpie_ui_path_theme + '/icon/hud/tablist/player')",
                // 가로/세로 크기
                "size": [ 10, 10 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle"
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "player_count_text@rainbowpie_ui_common.title_label": {
          // 보여줄 글자
          "text": "#player_count_str",
          // 가로/세로 크기
          "size": [ "default", 10 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#collection_index",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "players_collection"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#collection_index + 1)",
              // 결과가 들어갈 속성
              "target_property_name": "#player_count"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('\"' + #player_count + '\"')",
              // 결과가 들어갈 속성
              "target_property_name": "#player_count_str"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "player_count_v2": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 221, 12 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@rainbowpie_ui_common.title_background": {
          // 가로/세로 크기
          "size": [ "100%c + 6px", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "player_count@rainbowpieui_hud.player_count_v2_item": {
                // 가로/세로 크기
                "size": [ 104, 10 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#collection_index",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#collection_index < 12)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "player_count_wide@rainbowpieui_hud.player_count_v2_item": {
                // 가로/세로 크기
                "size": [ 215, 10 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#collection_index",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#collection_index > 11)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "player_count_new": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 221, 10 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", 10 ],
          // ?? ????
          "clips_children": true,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "player_count": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ 110, 10 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "player_count_text@rainbowpie_ui_common.title_label": {
                      // ?? ??
                      "shadow": true,
                      // ?? ??
                      "text_alignment": "left",
                      // 보여줄 글자
                      "text": "#player_count_str",
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#player_list_title"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "#collection_index",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "players_collection"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#collection_index + 1)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#player_count"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "('\"' + #player_count + ' | ' + #player_list_title + '\"')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#player_count_str"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "spacer_0": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "fill", 1 ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 111, 10 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#collection_index",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#collection_index > 11)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "player_count": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ 221, 10 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_playercount_textshadow|default": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "player_count_text@rainbowpie_ui_common.title_label": {
          // ?? ??
          "shadow": "$rainbowpie_localui_playercount_textshadow",
          // ?? ??
          "text_alignment": "left",
          // 보여줄 글자
          "text": "#player_count_str",
          // 가로/세로 크기
          "size": [ "default", 10 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#collection_index",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "players_collection"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#collection_index + 1)",
              // 결과가 들어갈 속성
              "target_property_name": "#player_count"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('\"' + #player_count + '\"')",
              // 결과가 들어갈 속성
              "target_property_name": "#player_count_str"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "spacer_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 2, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "player_label@rainbowpie_ui_common.title_label": {
          // ?? ??
          "shadow": "$rainbowpie_localui_playercount_textshadow",
          // ?? ??
          "text_alignment": "left",
          // 보여줄 글자
          "text": "rainbowpie.ui.hud.tablist.player_count",
          // 가로/세로 크기
          "size": [ "fill", 10 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#collection_index",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "players_collection"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#collection_index + 1)",
              // 결과가 들어갈 속성
              "target_property_name": "#player_count"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (#player_count = 1))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "player_label_single@rainbowpie_ui_common.title_label": {
          // ?? ??
          "shadow": "$rainbowpie_localui_playercount_textshadow",
          // ?? ??
          "text_alignment": "left",
          // 보여줄 글자
          "text": "rainbowpie.ui.hud.tablist.player_count.single",
          // 가로/세로 크기
          "size": [ "fill", 10 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#collection_index",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "players_collection"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#collection_index + 1)",
              // 결과가 들어갈 속성
              "target_property_name": "#player_count"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#player_count = 1)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "toomany_players_tip": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 221, 12 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "tip_background@rainbowpie_ui_common.text_background": {
          // 가로/세로 크기
          "size": [ 221, 12 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "tip_text@rainbowpie_ui_common.title_label": {
                // ?? ??
                "text_alignment": "center",
                // 보여줄 글자
                "text": "rainbowpie.ui.hud.tablist.maxplayers",
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 가로/세로 크기
                "size": [ "100%", 10 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#collection_index",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "players_collection"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#collection_index = 22)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "playerlist_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 110, 13 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_playerlist_start_index|default": 0,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_playerlist_end_index|default": 10,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_playerlist_full|default": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "playerlist_item_background@rainbowpie_ui_common.title_background": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 가로/세로 크기
          "size": [ 110, 12 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "playerlist_item_panel@rainbowpieui_hud.playerlist_item_panel": {}
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#collection_index",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "players_collection"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(((#collection_index > $rainbowpie_localui_playerlist_start_index) or (#collection_index = $rainbowpie_localui_playerlist_start_index) and ((#collection_index < $rainbowpie_localui_playerlist_end_index) or (#collection_index = $rainbowpie_localui_playerlist_end_index)))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible",
              // 완전히 제거(공간도 없음)
              "ignored": "$rainbowpie_localui_playerlist_full"
            }
          ]
        }
      }
    ]

  },

  // ???/?? ??
  "playerlist_item_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 110, 12 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "player_image": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "#texture",
          // 가로/세로 크기
          "size": [ 12, 12 ],
          // ??? ?? ???
          "texture_file_system": "#texture_source",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#texture",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "players_collection"
            },
            {
              // 가져올 값 이름
              "binding_name": "#texture_source",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "players_collection"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "#texture_source",
              // 결과가 들어갈 속성
              "target_property_name": "#texture_file_system"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (#texture_source = 'RawPath'))",
              // 결과가 들어갈 속성
              "target_property_name": "#is_local_picture"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (#is_local_picture)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "player_image_local": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/icon_steve",
          // 가로/세로 크기
          "size": [ 12, 12 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#texture_source",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "players_collection"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (#texture_source = 'RawPath'))",
              // 결과가 들어갈 속성
              "target_property_name": "#is_local_picture"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "#is_local_picture",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "player_name_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 13, 0 ],
          // 가로/세로 크기
          "size": [ "100% - 14px", 10 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "player_name@rainbowpie_ui_common.title_label": {
                // ?? ??
                "text_alignment": "left",
                // 보여줄 글자
                "text": "#gamertag",
                // 가로/세로 크기
                "size": [ "fill", 10 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#gamertag",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "tag_offline@rainbowpieui_hud.playertag": {
                // 완전히 제거(공간도 없음)
                "ignored": true, // 房主可能会被错误的显示为离线玩家
                // ?? (R,G,B,A)
                "color": [ 0.667, 0.667, 0.667 ],
                // 보여줄 글자
                "text": "rainbowpie.ui.hud.tablist.playertag.offline",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#gamerpic_visible",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not #gamerpic_visible)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "tag_self@rainbowpieui_hud.playertag": {
                // 보이기/숨기기(공간 유지)
                "visible": "$rainbowpie_ui_flag_tablist_selfTag",
                // ?? (R,G,B,A)
                "color": [ 0.333, 1.0, 0.333 ],
                // 보여줄 글자
                "text": "rainbowpie.ui.hud.tablist.playertag.self",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#collection_index",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#collection_index = 0)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "player_count_text@rainbowpie_ui_common.title_label": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_debug)",
                // 보여줄 글자
                "text": "#player_count_str",
                // 가로/세로 크기
                "size": [ "default", 10 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#collection_index",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#collection_index + 1)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#player_count"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "('\"' + #player_count + '\"')",
                    // 결과가 들어갈 속성
                    "target_property_name": "#player_count_str"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "playertag@rainbowpie_ui_common.text_label_notheme": {
    // ?? ??
    "text_alignment": "left",
    // 가로/세로 크기
    "size": [ "default", 10 ],
    // ?? ?? ?
    "max_size": [ "50%", 10 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3
  },

  // ???/?? ??
  "player_grid": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ 110, "100%c" ],
    // ??? ?? ?
    "grid_item_template": "rainbowpieui_hud.playerlist_item",
    // ??? ?? ?
    "grid_dimension_binding": "#players_grid_dimension",
    // 목록 이름
    "collection_name": "players_collection",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#players_grid_dimension"
      }
    ]
  }
}

in_bed_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: in_bed_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_bed",

  // ???/?? ??
  "in_bed_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_ingame_anim1": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_ingame_anim2": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "in_bed_screen_content@bed.in_bed_screen_content": {}
            }
          ]
        }
      }
    ]
  }
}

inventory_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: inventory_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_crafting",

  // 다른 템플릿을 가져와서 확장(상속)
  "crafting_helper_container_item@rainbowpie_ui_common.cell_image": {
    // 가로/세로 크기
    "size": [ 18, 18 ],
    // 오버라이드 가능한 변수
    "$item_detail_control|default": "",
    // 오버라이드 가능한 변수
    "$item_count_control|default": "",
    // 오버라이드 가능한 변수
    "$item_count_result_name|default": "#result",
    // 오버라이드 가능한 변수
    "$is_craft_input|default": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "item_renderer@rainbowpie_ui_common.item_renderer": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "$item_detail_control",
              // 계산식/참조 값
              "source_property_name": "#item_id_aux",
              // 결과가 들어갈 속성
              "target_property_name": "#item_id_aux"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "$item_count_control",
              // 계산식/참조 값
              "source_property_name": "($item_count_result_name > 0)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $is_craft_input)"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "output_count_total@rainbowpie_ui_common.text_label": {
          // ?? ??
          "shadow": true,
          // 보여줄 글자
          "text": "#item_stack_count_text",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 1 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 12,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "$item_count_control",
              // 계산식/참조 값
              "source_property_name": "$item_count_result_name",
              // 결과가 들어갈 속성
              "target_property_name": "#item_stack_count"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('\"' + #item_stack_count + '\"')",
              // 결과가 들어갈 속성
              "target_property_name": "#item_stack_count_text"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#item_stack_count > 1)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "crafting_helper_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_helper_background@rainbowpie_ui_common.text_background": {
          // 사용할 이미지 경로
          "texture": "($rainbowpie_ui_path_home + '/r_white')",
          // 가로/세로 크기
          "size": [ "100%c + 6px", "100%c + 4px" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 기준점에서 이동하는 거리
          "offset": [ "100%x + 2px", 23 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 30,
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_73085b33)",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "crafting_helper_output_slot",
              // 계산식/참조 값
              "source_property_name": "(not (#item_id_aux = -1))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "content_stack": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 가로/세로 크기
                "size": [ "100%cm", "100%c" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title@rainbowpie_ui_common.text_label": {
                      // 보여줄 글자
                      "text": "rainbowpie.ui.inventory.crafting_helper.title"
                    }
                  },
                  {
                    // ???/?? ??
                    "padding_0": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 0, 1 ]
                    }
                  },
                  {
                    // ???/?? ??
                    "crafting_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%c", "100%cm" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "crafting_3x3_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 54, 54 ],
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 보이기/숨기기(공간 유지)
                            "visible": "($top_half_variant = 'crafting.crafting_panel_top_half')",
                            // 오버라이드 가능한 변수
                            "$is_craft_input": true,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "3x3_craft_input_slot_0@rainbowpieui_crafting.crafting_helper_container_item": {
                                  // 오버라이드 가능한 변수
                                  "$item_detail_control": "crafting_helper_crafting_slot_0",
                                  // 오버라이드 가능한 변수
                                  "$item_count_control": "crafting_helper_crafting_slot_0",
                                  // 오버라이드 가능한 변수
                                  "$item_count_result_name": "#item_stack_count_after_craft",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_left",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_left"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "3x3_craft_input_slot_1@rainbowpieui_crafting.crafting_helper_container_item": {
                                  // 오버라이드 가능한 변수
                                  "$item_detail_control": "crafting_helper_crafting_slot_1",
                                  // 오버라이드 가능한 변수
                                  "$item_count_control": "crafting_helper_crafting_slot_1",
                                  // 오버라이드 가능한 변수
                                  "$item_count_result_name": "#item_stack_count_after_craft",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_middle",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_middle"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "3x3_craft_input_slot_2@rainbowpieui_crafting.crafting_helper_container_item": {
                                  // 오버라이드 가능한 변수
                                  "$item_detail_control": "crafting_helper_crafting_slot_2",
                                  // 오버라이드 가능한 변수
                                  "$item_count_control": "crafting_helper_crafting_slot_2",
                                  // 오버라이드 가능한 변수
                                  "$item_count_result_name": "#item_stack_count_after_craft",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_right",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_right"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "3x3_craft_input_slot_3@rainbowpieui_crafting.crafting_helper_container_item": {
                                  // 오버라이드 가능한 변수
                                  "$item_detail_control": "crafting_helper_crafting_slot_3",
                                  // 오버라이드 가능한 변수
                                  "$item_count_control": "crafting_helper_crafting_slot_3",
                                  // 오버라이드 가능한 변수
                                  "$item_count_result_name": "#item_stack_count_after_craft",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "left_middle",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "left_middle"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "3x3_craft_input_slot_4@rainbowpieui_crafting.crafting_helper_container_item": {
                                  // 오버라이드 가능한 변수
                                  "$item_detail_control": "crafting_helper_crafting_slot_4",
                                  // 오버라이드 가능한 변수
                                  "$item_count_control": "crafting_helper_crafting_slot_4",
                                  // 오버라이드 가능한 변수
                                  "$item_count_result_name": "#item_stack_count_after_craft",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "center",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "center"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "3x3_craft_input_slot_5@rainbowpieui_crafting.crafting_helper_container_item": {
                                  // 오버라이드 가능한 변수
                                  "$item_detail_control": "crafting_helper_crafting_slot_5",
                                  // 오버라이드 가능한 변수
                                  "$item_count_control": "crafting_helper_crafting_slot_5",
                                  // 오버라이드 가능한 변수
                                  "$item_count_result_name": "#item_stack_count_after_craft",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "right_middle",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "right_middle"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "3x3_craft_input_slot_6@rainbowpieui_crafting.crafting_helper_container_item": {
                                  // 오버라이드 가능한 변수
                                  "$item_detail_control": "crafting_helper_crafting_slot_6",
                                  // 오버라이드 가능한 변수
                                  "$item_count_control": "crafting_helper_crafting_slot_6",
                                  // 오버라이드 가능한 변수
                                  "$item_count_result_name": "#item_stack_count_after_craft",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "bottom_left",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "bottom_left"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "3x3_craft_input_slot_7@rainbowpieui_crafting.crafting_helper_container_item": {
                                  // 오버라이드 가능한 변수
                                  "$item_detail_control": "crafting_helper_crafting_slot_7",
                                  // 오버라이드 가능한 변수
                                  "$item_count_control": "crafting_helper_crafting_slot_7",
                                  // 오버라이드 가능한 변수
                                  "$item_count_result_name": "#item_stack_count_after_craft",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "bottom_middle",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "bottom_middle"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "3x3_craft_input_slot_8@rainbowpieui_crafting.crafting_helper_container_item": {
                                  // 오버라이드 가능한 변수
                                  "$item_detail_control": "crafting_helper_crafting_slot_8",
                                  // 오버라이드 가능한 변수
                                  "$item_count_control": "crafting_helper_crafting_slot_8",
                                  // 오버라이드 가능한 변수
                                  "$item_count_result_name": "#item_stack_count_after_craft",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "bottom_right",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "bottom_right"
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "crafting_2x2_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 36, 36 ],
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 보이기/숨기기(공간 유지)
                            "visible": "($top_half_variant = 'crafting.survival_panel_top_half')",
                            // 오버라이드 가능한 변수
                            "$is_craft_input": true,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "2x2_craft_input_slot_0@rainbowpieui_crafting.crafting_helper_container_item": {
                                  // 오버라이드 가능한 변수
                                  "$item_detail_control": "crafting_helper_crafting_slot_0",
                                  // 오버라이드 가능한 변수
                                  "$item_count_control": "crafting_helper_crafting_slot_0",
                                  // 오버라이드 가능한 변수
                                  "$item_count_result_name": "#item_stack_count_after_craft",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_left",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_left"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "2x2_craft_input_slot_1@rainbowpieui_crafting.crafting_helper_container_item": {
                                  // 오버라이드 가능한 변수
                                  "$item_detail_control": "crafting_helper_crafting_slot_1",
                                  // 오버라이드 가능한 변수
                                  "$item_count_control": "crafting_helper_crafting_slot_1",
                                  // 오버라이드 가능한 변수
                                  "$item_count_result_name": "#item_stack_count_after_craft",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_right",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_right"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "2x2_craft_input_slot_2@rainbowpieui_crafting.crafting_helper_container_item": {
                                  // 오버라이드 가능한 변수
                                  "$item_detail_control": "crafting_helper_crafting_slot_2",
                                  // 오버라이드 가능한 변수
                                  "$item_count_control": "crafting_helper_crafting_slot_2",
                                  // 오버라이드 가능한 변수
                                  "$item_count_result_name": "#item_stack_count_after_craft",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "bottom_left",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "bottom_left"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "2x2_craft_input_slot_3@rainbowpieui_crafting.crafting_helper_container_item": {
                                  // 오버라이드 가능한 변수
                                  "$item_detail_control": "crafting_helper_crafting_slot_3",
                                  // 오버라이드 가능한 변수
                                  "$item_count_control": "crafting_helper_crafting_slot_3",
                                  // 오버라이드 가능한 변수
                                  "$item_count_result_name": "#item_stack_count_after_craft",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "bottom_right",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "bottom_right"
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "crafting_arrow@crafting.crafting_arrow": {
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "right_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "right_middle",
                            // 기준점에서 이동하는 거리
                            "offset": [ -20, 0 ],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "arrow_padding": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 4, 0 ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_output@rainbowpieui_crafting.crafting_helper_container_item": {
                            // 오버라이드 가능한 변수
                            "$item_detail_control": "crafting_helper_output_slot",
                            // 오버라이드 가능한 변수
                            "$item_count_control": "crafting_helper_output_count_total",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "right_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "right_middle"
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "padding_bottom": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 0, 1 ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "crafting_helper_slot_detail": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#item_id_aux",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$item_collection_name"
      },
      {
        // 가져올 값 이름
        "binding_name": "#inventory_stack_count",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$item_collection_name"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((not (#item_id_aux = -1)) * (((#inventory_stack_count = 0) * 1) + (#inventory_stack_count * 1)))",
        // 결과가 들어갈 속성
        "target_property_name": "#item_stack_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "crafting_helper_crafting_slot_minimum_count",
        // 계산식/참조 값
        "source_property_name": "#result",
        // 결과가 들어갈 속성
        "target_property_name": "#minimum_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#item_stack_count - #minimum_count)",
        // 결과가 들어갈 속성
        "target_property_name": "#item_stack_count_after_craft"
      }
    ]
  },

  // ???/?? ??
  "crafting_helper_output_slot_detail": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "crafting_output_items",
    // 오버라이드 가능한 변수
    "$item_collection_name": "crafting_output_items",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_helper_output_slot@rainbowpieui_crafting.crafting_helper_slot_detail": {
          // ?? ??
          "collection_index": 0
        }
      }
    ]
  },

  // ???/?? ??
  "crafting_helper_crafting_slot_detail": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "crafting_input_items",
    // 오버라이드 가능한 변수
    "$item_collection_name": "crafting_input_items",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_helper_crafting_slot_0@rainbowpieui_crafting.crafting_helper_slot_detail": {
          // ?? ??
          "collection_index": 0
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_helper_crafting_slot_1@rainbowpieui_crafting.crafting_helper_slot_detail": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_helper_crafting_slot_2@rainbowpieui_crafting.crafting_helper_slot_detail": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_helper_crafting_slot_3@rainbowpieui_crafting.crafting_helper_slot_detail": {
          // ?? ??
          "collection_index": 3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_helper_crafting_slot_4@rainbowpieui_crafting.crafting_helper_slot_detail": {
          // ?? ??
          "collection_index": 4
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_helper_crafting_slot_5@rainbowpieui_crafting.crafting_helper_slot_detail": {
          // ?? ??
          "collection_index": 5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_helper_crafting_slot_6@rainbowpieui_crafting.crafting_helper_slot_detail": {
          // ?? ??
          "collection_index": 6
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_helper_crafting_slot_7@rainbowpieui_crafting.crafting_helper_slot_detail": {
          // ?? ??
          "collection_index": 7
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_helper_crafting_slot_8@rainbowpieui_crafting.crafting_helper_slot_detail": {
          // ?? ??
          "collection_index": 8
        }
      }
    ]
  },

  // 3x3 (9) 取值最小 (By DeepSeek AI)
  "crafting_helper_crafting_slot_minimum_count": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 이 컨트롤 안에서 쓰는 임시 저장소
    "property_bag": {
      // ???/??? ?
      "#a": 0,
      // ???/??? ?
      "#b": 0,
      // ???/??? ?
      "#c": 0,
      // ???/??? ?
      "#d": 0,
      // ???/??? ?
      "#e": 0,
      // ???/??? ?
      "#f": 0,
      // ???/??? ?
      "#g": 0,
      // ???/??? ?
      "#h": 0,
      // ???/??? ?
      "#i": 0,
      // ???/??? ?
      "#result": -1
    },
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "crafting_helper_crafting_slot_0",
        // 계산식/참조 값
        "source_property_name": "#item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#a"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "crafting_helper_crafting_slot_1",
        // 계산식/참조 값
        "source_property_name": "#item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#b"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "crafting_helper_crafting_slot_2",
        // 계산식/참조 값
        "source_property_name": "#item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#c"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "crafting_helper_crafting_slot_3",
        // 계산식/참조 값
        "source_property_name": "#item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#d"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "crafting_helper_crafting_slot_4",
        // 계산식/참조 값
        "source_property_name": "#item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#e"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "crafting_helper_crafting_slot_5",
        // 계산식/참조 값
        "source_property_name": "#item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#f"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "crafting_helper_crafting_slot_6",
        // 계산식/참조 값
        "source_property_name": "#item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#g"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "crafting_helper_crafting_slot_7",
        // 계산식/참조 값
        "source_property_name": "#item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#h"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "crafting_helper_crafting_slot_8",
        // 계산식/참조 값
        "source_property_name": "#item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#i"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#a > 0) * #a + (#a < 1) * 9990)",
        // 결과가 들어갈 속성
        "target_property_name": "#adjusted_a"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#b > 0) * #b + (#b < 1) * 9990)",
        // 결과가 들어갈 속성
        "target_property_name": "#adjusted_b"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#c > 0) * #c + (#c < 1) * 9990)",
        // 결과가 들어갈 속성
        "target_property_name": "#adjusted_c"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#d > 0) * #d + (#d < 1) * 9990)",
        // 결과가 들어갈 속성
        "target_property_name": "#adjusted_d"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#e > 0) * #e + (#e < 1) * 9990)",
        // 결과가 들어갈 속성
        "target_property_name": "#adjusted_e"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#f > 0) * #f + (#f < 1) * 9990)",
        // 결과가 들어갈 속성
        "target_property_name": "#adjusted_f"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#g > 0) * #g + (#g < 1) * 9990)",
        // 결과가 들어갈 속성
        "target_property_name": "#adjusted_g"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#h > 0) * #h + (#h < 1) * 9990)",
        // 결과가 들어갈 속성
        "target_property_name": "#adjusted_h"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#i > 0) * #i + (#i < 1) * 9990)",
        // 결과가 들어갈 속성
        "target_property_name": "#adjusted_i"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#adjusted_a < #adjusted_b) * #adjusted_a + (#adjusted_b < #adjusted_a) * #adjusted_b + (#adjusted_a = #adjusted_b) * #adjusted_a)",
        // 결과가 들어갈 속성
        "target_property_name": "#temp_1"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#temp_1 < #adjusted_c) * #temp_1 + (#adjusted_c < #temp_1) * #adjusted_c + (#temp_1 = #adjusted_c) * #temp_1)",
        // 결과가 들어갈 속성
        "target_property_name": "#temp_2"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#temp_2 < #adjusted_d) * #temp_2 + (#adjusted_d < #temp_2) * #adjusted_d + (#temp_2 = #adjusted_d) * #temp_2)",
        // 결과가 들어갈 속성
        "target_property_name": "#temp_3"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#temp_3 < #adjusted_e) * #temp_3 + (#adjusted_e < #temp_3) * #adjusted_e + (#temp_3 = #adjusted_e) * #temp_3)",
        // 결과가 들어갈 속성
        "target_property_name": "#temp_4"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#temp_4 < #adjusted_f) * #temp_4 + (#adjusted_f < #temp_4) * #adjusted_f + (#temp_4 = #adjusted_f) * #temp_4)",
        // 결과가 들어갈 속성
        "target_property_name": "#temp_5"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#temp_5 < #adjusted_g) * #temp_5 + (#adjusted_g < #temp_5) * #adjusted_g + (#temp_5 = #adjusted_g) * #temp_5)",
        // 결과가 들어갈 속성
        "target_property_name": "#temp_6"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#temp_6 < #adjusted_h) * #temp_6 + (#adjusted_h < #temp_6) * #adjusted_h + (#temp_6 = #adjusted_h) * #temp_6)",
        // 결과가 들어갈 속성
        "target_property_name": "#temp_7"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#temp_7 < #adjusted_i) * #temp_7 + (#adjusted_i < #temp_7) * #adjusted_i + (#temp_7 = #adjusted_i) * #temp_7)",
        // 결과가 들어갈 속성
        "target_property_name": "#result"
      }
    ]
  },

  // ???/?? ??
  "crafting_helper_output_count_total": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "crafting_helper_crafting_slot_minimum_count",
        // 계산식/참조 값
        "source_property_name": "#result",
        // 결과가 들어갈 속성
        "target_property_name": "#minimum_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "crafting_helper_output_slot",
        // 계산식/참조 값
        "source_property_name": "#item_stack_count",
        // 결과가 들어갈 속성
        "target_property_name": "#item_stack_count"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#item_stack_count * #minimum_count)",
        // 결과가 들어갈 속성
        "target_property_name": "#result"
      }
    ]
  },

  // ???/?? ??
  "crafting_helper_controller": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_73085b33)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_helper_output_slot_detail@rainbowpieui_crafting.crafting_helper_output_slot_detail": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_helper_crafting_slot_detail@rainbowpieui_crafting.crafting_helper_crafting_slot_detail": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_helper_crafting_slot_minimum_count@rainbowpieui_crafting.crafting_helper_crafting_slot_minimum_count": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_helper_output_count_total@rainbowpieui_crafting.crafting_helper_output_count_total": {}
      }
    ]
  },

  // ???/?? ??
  "recipe_cell_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "recipe_container_cell_images@crafting.recipe_container_cell_images": {}
      },
      {
        // ???/?? ??
        "fastplace_slot_panel": {
          // 마우스/커서 따라다니는 패널
          "type": "input_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // ?? ??
          "consume_hover_events": "$touch",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 22,
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 완전히 제거(공간도 없음)
          "ignored": "((not $rainbowpie_ui_flag_29bdcf8a) or (not $rainbowpie_ui_flag_84df7492))",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "$item_collection_name"
            },
            {
              // 가져올 값 이름
              "binding_name": "#item_id_aux",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$item_collection_name"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "inventoryui_fastplace",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#inventoryui_fastplace_enabled"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((not (#item_id_aux = -1)) and #inventoryui_fastplace_enabled)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ],
          // 입력 키/버튼과 동작 연결
          "button_mappings": [
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_select",
              // 어떤 동작을 실행할지
              "to_button_id": "button.container_auto_place",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_ok",
              // 어떤 동작을 실행할지
              "to_button_id": "button.container_auto_place",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "result_slot_border": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/focus_border_white",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // ?? (R,G,B,A)
          "color": [ 0.0, 1.0, 0.0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 완전히 제거(공간도 없음)
          "ignored": "((not $rainbowpie_ui_flag_d6bb54d8) or (not $rainbowpie_ui_flag_84df7492))",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#hover_text",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$item_collection_name"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('\"' + #hover_text - '\n' - '§0' - '§1' - '§2' - '§3' - '§4' - '§5' - '§6' - '§7' - '§8' - '§9' - '§a' - '§b' - '§c' - '§d' - '§e' - '§f' - '§g' - '§h' - '§i' - '§j' - '§k' - '§l' - '§m' - '§n' - '§o' - '§p' - '§q' - '§r' - '§s' - '§t' - '§u' - '§v' - '§w' - '§x' - '§y' - '§z' + '\"')",
              // 결과가 들어갈 속성
              "target_property_name": "#formatted_name"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "inventoryui_search_text_box_display_text",
              // 계산식/참조 값
              "source_property_name": "#item_name",
              // 결과가 들어갈 속성
              "target_property_name": "#query_text"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not ((#formatted_name - #query_text) = #formatted_name))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "action_cell_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "cell_panel@rainbowpie_ui_inventory_and_container.cell_panel": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "inventory_actions_cell_panel@rainbowpie_module_inventory_actions.inventory_actions_cell_panel": {}
      }
    ]
  },

  // ???/?? ??
  "vanilla_search_button_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "search_icon": {
          // 이미지 표시
          "type": "image",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 가로/세로 크기
          "size": [ 8, 8 ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, -0.5 ],
          // 사용할 이미지 경로
          "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/search')"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button_text@rainbowpie_ui_common.text_label": {
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 가로/세로 크기
          "size": [ "100% - 10px", "default" ],
          // 기준점에서 이동하는 거리
          "offset": [ 10, 0 ],
          // 보여줄 글자
          "text": "rainbowpie.ui.inventory.search_button",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#text_box_item_name"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#text_box_item_name = '')",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button_text_search@rainbowpie_ui_common.text_label": {
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 가로/세로 크기
          "size": [ "100% - 10px", "default" ],
          // 기준점에서 이동하는 거리
          "offset": [ 10, 0 ],
          // 보여줄 글자
          "text": "#text_box_item_name",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#text_box_item_name"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (#text_box_item_name = ''))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "vanilla_search_button_toggle_base@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_crafting.vanilla_search_button_content",

    // 오버라이드 가능한 변수
    "$button_type_panel": "common_buttons.new_ui_binding_button_label",
    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_inventoryui_vanilla_item_search",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 1001,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  },

  // ???/?? ??
  "recipe_book_exit_animation_push": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_v2_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_v2_transition_time",
    // 끝 값
    "to": [ "71px", "100%" ],
    // 시작 값
    "from": [ "150px", "100%" ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "recipe_book_exit_animation_pop": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_v2_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_v2_transition_time",
    // 끝 값
    "to": [ "71px", "100%" ],
    // 시작 값
    "from": [ "150px", "100%" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "recipe_book_entrance_animation_push": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_v2_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_v2_transition_time",
    // 끝 값
    "to": [ "150px", "100%" ],
    // 시작 값
    "from": [ "71px", "100%" ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "recipe_book_entrance_animation_pop": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_v2_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_v2_transition_time",
    // 끝 값
    "to": [ "150px", "100%" ],
    // 시작 값
    "from": [ "71px", "100%" ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "compass_panel_exit_animation_push": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_v2_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_v2_transition_time",
    // 끝 값
    "to": "$compass_panel_exit_offset",
    // 시작 값
    "from": "$compass_panel_entrance_offset",
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "compass_panel_exit_animation_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_v2_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_v2_transition_time",
    // 끝 값
    "to": "$compass_panel_exit_offset",
    // 시작 값
    "from": "$compass_panel_entrance_offset",
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "compass_panel_entrance_animation_push": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_v2_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_v2_transition_time",
    // 끝 값
    "to": "$compass_panel_entrance_offset",
    // 시작 값
    "from": "$compass_panel_exit_offset",
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "compass_panel_entrance_animation_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_v2_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_v2_transition_time",
    // 끝 값
    "to": "$compass_panel_entrance_offset",
    // 시작 값
    "from": "$compass_panel_exit_offset",
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "compass_panel": {
    // 이미지 표시
    "type": "image",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_9920f05c)",
    // 보이기/숨기기(공간 유지)
    "visible": true,
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_home + '/r_white')",
    // 가로/세로 크기
    "size": [ "100%c + 5px", "100%c + 5px" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 기준점에서 이동하는 거리
    "offset": "$compass_panel_entrance_offset",
    // 오버라이드 가능한 변수
    "$compass_panel_entrance_offset": [ 0, "-45%" ],
    // 오버라이드 가능한 변수
    "$compass_panel_exit_offset": [ 0, "-55%" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 8,
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_background_alpha",
    // 애니메이션 목록
    "anims": [
      "@rainbowpieui_crafting.compass_panel_exit_animation_push",
      "@rainbowpieui_crafting.compass_panel_exit_animation_pop",
      "@rainbowpieui_crafting.compass_panel_entrance_animation_push",
      "@rainbowpieui_crafting.compass_panel_entrance_animation_pop"
    ],
    // ????? ?? ?
    "animation_reset_name": "screen_animation_reset",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "($rainbowpie_ui_flag_inventory_compass_postion = 1)",
        // 오버라이드 가능한 변수
        "$compass_panel_entrance_offset": [ 0, 90 ],
        // 오버라이드 가능한 변수
        "$compass_panel_exit_offset": [ 0, "55%" ]
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 게임이 주는 전역 값 연결
        "binding_type": "global",
        // 가져올 값 이름
        "binding_name": "(not #is_creative_layout)",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // 완전히 제거(공간도 없음)
        "ignored": "(not ($rainbowpie_ui_flag_inventory_compass_postion = 1))"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "compass_stack_panel@rainbowpieui_compatibility_config.compatibility_variables": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%cm" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "clock@crafting.item_renderer": {
                // 가로/세로 크기
                "size": [ 16, 16 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#item_id_aux": "($rainbowpie_ui_flag_item_clock_id * 65536)"
                }
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "compass@crafting.item_renderer": {
                // 가로/세로 크기
                "size": [ 16, 16 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#item_id_aux": "($rainbowpie_ui_flag_item_compass_id * 65536)"
                }
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "recovery_compass@crafting.item_renderer": {
                // 가로/세로 크기
                "size": [ 16, 16 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#item_id_aux": "($rainbowpie_ui_flag_item_recovery_compass_id * 65536)"
                }
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "armor_durability_panel_exit_animation_push": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_v2_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_v2_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ "30%x", 0 ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "armor_durability_panel_exit_animation_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_v2_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_v2_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ "30%x", 0 ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "armor_durability_panel_entrance_animation_push": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_v2_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_v2_transition_time",
    // 시작 값
    "from": [ "30%x", 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "armor_durability_panel_entrance_animation_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_container_v2_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_container_v2_transition_time",
    // 시작 값
    "from": [ "30%x", 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "inventory_icon@crafting.inventory_icon": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "recipe_book_icon@crafting.recipe_book_icon": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "creative_icon@crafting.creative_icon": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "player_inventory": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 172, 156 ], // 176 center
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "root_panel@rainbowpieui_crafting.player_inventory_root_panel": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right"
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "player_inventory_root_panel@common.root_panel": {
    // 가로/세로 크기
    "size": [ 168, 179 ],
    // 오버라이드 가능한 변수
    "$animation_ignored|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventoryheader_search_ignored|default": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_helper_panel@rainbowpieui_crafting.crafting_helper_panel": {
          // 오버라이드 가능한 변수
          "$anims": [
            "@rainbowpieui_crafting.armor_durability_panel_exit_animation_push",
            "@rainbowpieui_crafting.armor_durability_panel_exit_animation_pop",
            "@rainbowpieui_crafting.armor_durability_panel_entrance_animation_push",
            "@rainbowpieui_crafting.armor_durability_panel_entrance_animation_pop"
          ],
          // 애니메이션 목록
          "anims": "$anims",
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$animation_ignored",
              // 오버라이드 가능한 변수
              "$anims": []
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "armor_durability_panel@rainbowpieui_crafting.armor_durability_panel_v2": {
          // 오버라이드 가능한 변수
          "$anims": [
            "@rainbowpieui_crafting.armor_durability_panel_exit_animation_push",
            "@rainbowpieui_crafting.armor_durability_panel_exit_animation_pop",
            "@rainbowpieui_crafting.armor_durability_panel_entrance_animation_push",
            "@rainbowpieui_crafting.armor_durability_panel_entrance_animation_pop"
          ],
          // 애니메이션 목록
          "anims": "$anims",
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$animation_ignored",
              // 오버라이드 가능한 변수
              "$anims": []
            }
          ]
        }
      },
      {
        // ???/?? ??
        "inventory_ui_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$anims": [
            "@rainbowpie_ui_animations.container_panel_exit_animation_push",
            "@rainbowpie_ui_animations.container_panel_exit_animation_pop",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_push",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_pop"
          ],
          // 애니메이션 목록
          "anims": "$anims",
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$animation_ignored",
              // 오버라이드 가능한 변수
              "$anims": []
            }
          ],
          // 오버라이드 가능한 변수
          "$background_images": "rainbowpieui_crafting.action_cell_panel",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "crafting_background_icon@rainbowpie_ui_inventory.background_icon": {
                // 가로/세로 크기
                "size": "$size",
                // 기준점에서 이동하는 거리
                "offset": "$offset",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$anchor_to",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$anchor_from",
                // 사용할 이미지 경로
                "texture": "$texture",
                // ???
                "alpha": "$alpha",
                // ?? ??
                "fill": "$fill",

                // 오버라이드 가능한 변수
                "$size": "$rainbowpie_ui_theme_inventory_bgicon_crafting_size",
                // 오버라이드 가능한 변수
                "$offset": "$rainbowpie_ui_theme_inventory_bgicon_crafting_offset",
                // 오버라이드 가능한 변수
                "$anchor_to": "$rainbowpie_ui_theme_inventory_bgicon_crafting_anchor",
                // 오버라이드 가능한 변수
                "$anchor_from": "$rainbowpie_ui_theme_inventory_bgicon_crafting_anchor",
                // 오버라이드 가능한 변수
                "$texture": "$rainbowpie_ui_theme_inventory_bgicon_crafting_texture",
                // 오버라이드 가능한 변수
                "$alpha": "$rainbowpie_ui_theme_inventory_bgicon_crafting_alpha",
                // 오버라이드 가능한 변수
                "$fill": "$rainbowpie_ui_theme_inventory_bgicon_crafting_fill",
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "($top_half_variant = 'crafting.crafting_panel_top_half')",
                    // 오버라이드 가능한 변수
                    "$size": "$rainbowpie_ui_theme_inventory_bgicon_craftingtable_size",
                    // 오버라이드 가능한 변수
                    "$offset": "$rainbowpie_ui_theme_inventory_bgicon_craftingtable_offset",
                    // 오버라이드 가능한 변수
                    "$anchor_to": "$rainbowpie_ui_theme_inventory_bgicon_craftingtable_anchor",
                    // 오버라이드 가능한 변수
                    "$anchor_from": "$rainbowpie_ui_theme_inventory_bgicon_craftingtable_anchor",
                    // 오버라이드 가능한 변수
                    "$texture": "$rainbowpie_ui_theme_inventory_bgicon_craftingtable_texture",
                    // 오버라이드 가능한 변수
                    "$alpha": "$rainbowpie_ui_theme_inventory_bgicon_craftingtable_alpha",
                    // 오버라이드 가능한 변수
                    "$fill": "$rainbowpie_ui_theme_inventory_bgicon_craftingtable_fill"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background_icon@rainbowpie_ui_inventory.background_icon": {
                // 사용할 이미지 경로
                "texture": "$rainbowpie_ui_theme_inventory_bgicon_texture_inventory"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory_actions_inventory@rainbowpie_module_inventory_actions.inventory_actions_inventory": {
                // 오버라이드 가능한 변수
                "$action_button_stack_panel_size": [ "13.0952380952381%", "100%c" ],
                // 오버라이드 가능한 변수
                "$action_button_stack_panel_max_size": [ "13.0952380952381%", "100%" ],
                // 오버라이드 가능한 변수
                "$padding_size": [ "100%", "9.090909090909091%x" ]
              }
            },
            {
              // ???/?? ??
              "toolbar_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 가로/세로 크기
                "size": [ "100%", "12.84916201117318%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "toolbar_stack_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",

                      // 가로/세로 크기
                      "size": [ "default", "100%" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",

                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "inventory_mode_tabs_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 가로/세로 크기
                            "size": [ "default", "100%" ],
                            // 보이기/숨기기(공간 유지)
                            "visible": true,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // ?? ??
                                "source_control_name": "show_search_box",
                                // 계산식/참조 값
                                "source_property_name": "(not #toggle_state)",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible",
                                // 완전히 제거(공간도 없음)
                                "ignored": "((not $rainbowpie_ui_flag_d6bb54d8) or (not $rainbowpie_ui_flag_84df7492) or $rainbowpie_localui_inventoryheader_search_ignored)"
                              }
                            ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "left_trigger_anchor": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ 0, "100%" ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#gamepad_helper_visible",
                                      // 가져온 값을 다른 속성으로 연결
                                      "binding_name_override": "#visible"
                                    }
                                  ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "gamepad_helper_left_trigger@common.gamepad_helper_left_trigger": {
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 3, -2 ],
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "left_middle",
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "right_middle"
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "creative_layout_toggle_panel": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ "100%c", "100%" ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 게임이 주는 전역 값 연결
                                      "binding_type": "global",
                                      // 가져올 값 이름
                                      "binding_name": "#creative_layout_button_visible",
                                      // 가져온 값을 다른 속성으로 연결
                                      "binding_name_override": "#visible"
                                    }
                                  ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "creative_layout_toggle@crafting.creative_layout_toggle": {
                                        // 가로/세로 크기
                                        "size": [ "108.695652173913%y", "100%" ], // 25x23
                                        // 오버라이드 가능한 변수
                                        "$icon_control": "rainbowpieui_crafting.creative_icon",

                                        // 오버라이드 가능한 변수
                                        "$focus_override_left": "search_tab",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_control": "rainbowpie_ui_toggle.toggle_tab_unchecked",
                                        // 오버라이드 가능한 변수
                                        "$checked_control": "rainbowpie_ui_toggle.toggle_tab_checked",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_hover",
                                        // 오버라이드 가능한 변수
                                        "$checked_hover_control": "rainbowpie_ui_toggle.toggle_tab_checked_hover",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_locked",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_locked_hover",
                                        // 오버라이드 가능한 변수
                                        "$checked_locked_control": "rainbowpie_ui_toggle.toggle_tab_checked_locked",
                                        // 오버라이드 가능한 변수
                                        "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_tab_checked_locked_hover",

                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_unchecked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_unchecked_default_alpha": 0.3,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha": 0.4,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_checked_default_alpha": 0.5,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha": 0.6
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "recipe_book_layout_toggle_panel_survival": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ "100%c", "100%" ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 게임이 주는 전역 값 연결
                                      "binding_type": "global",
                                      // 가져올 값 이름
                                      "binding_name": "(not #is_creative_mode)",
                                      // 가져온 값을 다른 속성으로 연결
                                      "binding_name_override": "#visible"
                                    }
                                  ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "recipe_book_layout_toggle@crafting.recipe_book_layout_toggle": {
                                        // 가로/세로 크기
                                        "size": [ "108.695652173913%y", "100%" ], // 25x23
                                        // 오버라이드 가능한 변수
                                        "$icon_control": "rainbowpieui_crafting.recipe_book_icon",

                                        // 오버라이드 가능한 변수
                                        "$focus_override_left": "search_tab",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_control": "rainbowpie_ui_toggle.toggle_tab_unchecked",
                                        // 오버라이드 가능한 변수
                                        "$checked_control": "rainbowpie_ui_toggle.toggle_tab_checked",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_hover",
                                        // 오버라이드 가능한 변수
                                        "$checked_hover_control": "rainbowpie_ui_toggle.toggle_tab_checked_hover",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_locked",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_locked_hover",
                                        // 오버라이드 가능한 변수
                                        "$checked_locked_control": "rainbowpie_ui_toggle.toggle_tab_checked_locked",
                                        // 오버라이드 가능한 변수
                                        "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_tab_checked_locked_hover",

                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_unchecked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_unchecked_default_alpha": 0.3,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha": 0.4,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_checked_default_alpha": 0.5,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha": 0.6
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "recipe_book_layout_toggle_panel_creative": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ "100%c", "100%" ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 게임이 주는 전역 값 연결
                                      "binding_type": "global",
                                      // 가져올 값 이름
                                      "binding_name": "#is_creative_mode",
                                      // 가져온 값을 다른 속성으로 연결
                                      "binding_name_override": "#visible"
                                    }
                                  ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "recipe_book_layout_toggle@crafting.recipe_book_layout_toggle": {
                                        // 가로/세로 크기
                                        "size": [ "108.695652173913%y", "100%" ], // 25x23
                                        // 오버라이드 가능한 변수
                                        "$icon_control": "rainbowpieui_crafting.recipe_book_icon",

                                        // 오버라이드 가능한 변수
                                        "$unchecked_control": "rainbowpie_ui_toggle.toggle_tab_unchecked",
                                        // 오버라이드 가능한 변수
                                        "$checked_control": "rainbowpie_ui_toggle.toggle_tab_checked",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_hover",
                                        // 오버라이드 가능한 변수
                                        "$checked_hover_control": "rainbowpie_ui_toggle.toggle_tab_checked_hover",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_locked",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_locked_hover",
                                        // 오버라이드 가능한 변수
                                        "$checked_locked_control": "rainbowpie_ui_toggle.toggle_tab_checked_locked",
                                        // 오버라이드 가능한 변수
                                        "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_tab_checked_locked_hover",

                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_unchecked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_unchecked_default_alpha": 0.3,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha": 0.4,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_checked_default_alpha": 0.5,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha": 0.6
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "survival_layout_toggle_panel": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ "100%c", "100%" ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "survival_layout_toggle@crafting.survival_layout_toggle": {
                                        // 가로/세로 크기
                                        "size": [ "108.695652173913%y", "100%" ], // 25x23
                                        // 오버라이드 가능한 변수
                                        "$icon_control": "rainbowpieui_crafting.inventory_icon",

                                        // 오버라이드 가능한 변수
                                        "$unchecked_control": "rainbowpie_ui_toggle.toggle_tab_unchecked",
                                        // 오버라이드 가능한 변수
                                        "$checked_control": "rainbowpie_ui_toggle.toggle_tab_checked",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_hover",
                                        // 오버라이드 가능한 변수
                                        "$checked_hover_control": "rainbowpie_ui_toggle.toggle_tab_checked_hover",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_locked",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_locked_hover",
                                        // 오버라이드 가능한 변수
                                        "$checked_locked_control": "rainbowpie_ui_toggle.toggle_tab_checked_locked",
                                        // 오버라이드 가능한 변수
                                        "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_tab_checked_locked_hover",

                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_unchecked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_unchecked_default_alpha": 0.3,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha": 0.4,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_checked_default_alpha": 0.5,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha": 0.6
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "button_background@rainbowpie_ui_inventory.header_background": {
                            // 이미지 표시
                            "type": "image",
                            // 가로/세로 크기
                            "size": [ "100%c", "100%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "extra_button_stack_panel": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "left_middle",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "left_middle",
                                  // 가로/세로 크기
                                  "size": [ "100%c", "100%" ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // ???/?? ??
                                      "fastplace_panel": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ "100%c", "100%" ],
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "((not $rainbowpie_ui_flag_29bdcf8a) or (not $rainbowpie_ui_flag_84df7492) or $rainbowpie_localui_inventoryheader_search_ignored)",
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 계산/조건 결과를 연결
                                            "binding_type": "view",
                                            // ?? ??
                                            "source_control_name": "show_search_box",
                                            // 계산식/참조 값
                                            "source_property_name": "(not #toggle_state)",
                                            // 결과가 들어갈 속성
                                            "target_property_name": "#visible",
                                            // 완전히 제거(공간도 없음)
                                            "ignored": "((not $rainbowpie_ui_flag_d6bb54d8) or (not $rainbowpie_ui_flag_84df7492) or $rainbowpie_localui_inventoryheader_search_ignored)"
                                          }
                                        ],
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "fastplace_button@rainbowpie_ui_inventory.fastplace_button_toggle_base": {
                                              // 오버라이드 가능한 변수
                                              "$rainbowpie_localui_button_default_alpha": 0.0,
                                              // 오버라이드 가능한 변수
                                              "$button_image_size": [ "100%", "100%" ],
                                              // 기준점(어디에서 시작할지)
                                              "anchor_from": "center",
                                              // 붙일 위치(어디에 놓을지)
                                              "anchor_to": "center",
                                              // 가로/세로 크기
                                              "size": [ "100%y", "100%" ],
                                              // 오버라이드 가능한 변수
                                              "$toggle_group_forced_index": 1010,
                                              // 오버라이드 가능한 변수
                                              "$toggle_view_binding_name": "inventoryui_fastplace",
                                              // 겹치는 순서(숫자 클수록 위)
                                              "layer": 10
                                            }
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      // ???/?? ??
                                      "search_panel": {
                                        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                        "type": "stack_panel",
                                        // 쌓는 방향(가로/세로)
                                        "orientation": "horizontal",
                                        // 가로/세로 크기
                                        "size": [ "100%c", "100%" ],
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "((not $rainbowpie_ui_flag_d6bb54d8) or (not $rainbowpie_ui_flag_84df7492) or $rainbowpie_localui_inventoryheader_search_ignored)",
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // ???/?? ??
                                            "search_inputbox_padding_0": {
                                              // 패널: 다른 부품을 담는 바닥판
                                              "type": "panel",
                                              // 가로/세로 크기
                                              "size": [ "12%y", "100%" ],
                                              // 게임 값과 연결하는 규칙 목록
                                              "bindings": [
                                                {
                                                  // 계산/조건 결과를 연결
                                                  "binding_type": "view",
                                                  // ?? ??
                                                  "source_control_name": "show_search_box",
                                                  // 계산식/참조 값
                                                  "source_property_name": "#toggle_state",
                                                  // 결과가 들어갈 속성
                                                  "target_property_name": "#visible"
                                                }
                                              ]
                                            }
                                          },
                                          {
                                            // ???/?? ??
                                            "search_inputbox": {
                                              // 패널: 다른 부품을 담는 바닥판
                                              "type": "panel",
                                              // 가로/세로 크기
                                              "size": [ "100%c", "100%" ],
                                              // 게임 값과 연결하는 규칙 목록
                                              "bindings": [
                                                {
                                                  // 계산/조건 결과를 연결
                                                  "binding_type": "view",
                                                  // ?? ??
                                                  "source_control_name": "show_search_box",
                                                  // 계산식/참조 값
                                                  "source_property_name": "#toggle_state",
                                                  // 결과가 들어갈 속성
                                                  "target_property_name": "#visible"
                                                }
                                              ],
                                              // 이 안에 들어가는 부품 목록
                                              "controls": [
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "back_button@rainbowpie_ui_inventory.search_button_toggle_base": {
                                                    // 오버라이드 가능한 변수
                                                    "$button_content": "rainbowpie_ui_inventory.hide_search_icon",
                                                    // 오버라이드 가능한 변수
                                                    "$button_image_size": [ "100%", "100%" ],
                                                    // 기준점(어디에서 시작할지)
                                                    "anchor_from": "left_middle",
                                                    // 붙일 위치(어디에 놓을지)
                                                    "anchor_to": "left_middle",
                                                    // 가로/세로 크기
                                                    "size": [ "100%y", "76%" ],
                                                    // 오버라이드 가능한 변수
                                                    "$toggle_group_forced_index": 1001,
                                                    // 오버라이드 가능한 변수
                                                    "$toggle_view_binding_name": "hide_search_box",
                                                    // 겹치는 순서(숫자 클수록 위)
                                                    "layer": 10,
                                                    // 오버라이드 가능한 변수
                                                    "$button_mappings": [
                                                      {
                                                        // 어떤 입력을 받을지
                                                        "from_button_id": "button.menu_select",
                                                        // 어떤 동작을 실행할지
                                                        "to_button_id": "button.menu_select",
                                                        // 입력 시점(pressed 등)
                                                        "mapping_type": "pressed"
                                                      },
                                                      {
                                                        // 어떤 입력을 받을지
                                                        "from_button_id": "button.menu_ok",
                                                        // 어떤 동작을 실행할지
                                                        "to_button_id": "button.menu_select",
                                                        // 입력 시점(pressed 등)
                                                        "mapping_type": "pressed"
                                                      },
                                                      {
                                                        // 어떤 입력을 받을지
                                                        "from_button_id": "button.menu_cancel",
                                                        // 어떤 동작을 실행할지
                                                        "to_button_id": "button.menu_select",
                                                        // 입력 시점(pressed 등)
                                                        "mapping_type": "global"
                                                      }
                                                    ],
                                                    // 게임 값과 연결하는 규칙 목록
                                                    "bindings": [
                                                      {
                                                        // 계산/조건 결과를 연결
                                                        "binding_type": "view",
                                                        // ?? ??
                                                        "source_control_name": "show_search_box",
                                                        // 계산식/참조 값
                                                        "source_property_name": "#toggle_state",
                                                        // 결과가 들어갈 속성
                                                        "target_property_name": "#enabled"
                                                      }
                                                    ]
                                                  }
                                                },
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "search_text_box@common.text_edit_box": {
                                                    // 오버라이드 가능한 변수
                                                    "$rainbowpie_localui_editbox_enabled": true,
                                                    // 오버라이드 가능한 변수
                                                    "$edit_box_indent_size": [ "100%", "100%" ],
                                                    // 기준점(어디에서 시작할지)
                                                    "anchor_from": "right_middle",
                                                    // 붙일 위치(어디에 놓을지)
                                                    "anchor_to": "right_middle",
                                                    // 가로/세로 크기
                                                    "size": [ "440%y", "76%" ],
                                                    // 오버라이드 가능한 변수
                                                    "$text_box_name": "inventoryui_search_text_box",
                                                    // 오버라이드 가능한 변수
                                                    "$text_edit_box_content_binding_name": "#inventoryui_search_text_box_item_name",
                                                    // 오버라이드 가능한 변수
                                                    "$text_edit_text_control": "inventoryui_search_text_box_display_text",
                                                    // 오버라이드 가능한 변수
                                                    "$place_holder_control": "rainbowpie_ui_inventory.search_box_place_holder_control",
                                                    // 오버라이드 가능한 변수
                                                    "$place_holder_text": "itemGroup.search",
                                                    // 끝에서 다시 처음으로 순환
                                                    "focus_wrap_enabled": false,
                                                    // ?? ?? ?
                                                    "max_length": 32767,
                                                    // 겹치는 순서(숫자 클수록 위)
                                                    "layer": 12
                                                  }
                                                }
                                              ]
                                            }
                                          },
                                          {
                                            // ???/?? ??
                                            "search_inputbox_padding_1": {
                                              // 패널: 다른 부품을 담는 바닥판
                                              "type": "panel",
                                              // 가로/세로 크기
                                              "size": [ "12%y", "100%" ],
                                              // 게임 값과 연결하는 규칙 목록
                                              "bindings": [
                                                {
                                                  // 가져올 값 이름
                                                  "binding_name": "#close_button_visible"
                                                },
                                                {
                                                  // 계산/조건 결과를 연결
                                                  "binding_type": "view",
                                                  // ?? ??
                                                  "source_control_name": "show_search_box",
                                                  // 계산식/참조 값
                                                  "source_property_name": "#toggle_state",
                                                  // 결과가 들어갈 속성
                                                  "target_property_name": "#is_search_box_showing"
                                                },
                                                {
                                                  // 계산/조건 결과를 연결
                                                  "binding_type": "view",
                                                  // 계산식/참조 값
                                                  "source_property_name": "(#is_search_box_showing and (not #close_button_visible))",
                                                  // 결과가 들어갈 속성
                                                  "target_property_name": "#visible"
                                                }
                                              ]
                                            }
                                          },
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "search_button@rainbowpie_ui_inventory.search_button_toggle_base": {
                                              // 오버라이드 가능한 변수
                                              "$rainbowpie_localui_button_default_alpha": 0.0,
                                              // 오버라이드 가능한 변수
                                              "$button_image_size": [ "100%", "100%" ],
                                              // 가로/세로 크기
                                              "size": [ "100%y", "100%" ],
                                              // 오버라이드 가능한 변수
                                              "$toggle_group_forced_index": 1000,
                                              // 오버라이드 가능한 변수
                                              "$toggle_view_binding_name": "show_search_box",
                                              // 겹치는 순서(숫자 클수록 위)
                                              "layer": 10,
                                              // 게임 값과 연결하는 규칙 목록
                                              "bindings": [
                                                {
                                                  // 계산/조건 결과를 연결
                                                  "binding_type": "view",
                                                  // ?? ??
                                                  "source_control_name": "show_search_box",
                                                  // 계산식/참조 값
                                                  "source_property_name": "(not #toggle_state)",
                                                  // 결과가 들어갈 속성
                                                  "target_property_name": "#enabled"
                                                },
                                                {
                                                  // 계산/조건 결과를 연결
                                                  "binding_type": "view",
                                                  // ?? ??
                                                  "source_control_name": "show_search_box",
                                                  // 계산식/참조 값
                                                  "source_property_name": "(not #toggle_state)",
                                                  // 결과가 들어갈 속성
                                                  "target_property_name": "#visible"
                                                }
                                              ]
                                            }
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "button_stack_panel": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "right_middle",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "right_middle",
                                  // 가로/세로 크기
                                  "size": [ "100%c", "100%" ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // ???/?? ??
                                      "close_button_panel": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ "100%y", "100%" ],
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 가져올 값 이름
                                            "binding_name": "#close_button_visible",
                                            // 가져온 값을 다른 속성으로 연결
                                            "binding_name_override": "#visible"
                                          }
                                        ],
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "close_button@rainbowpie_ui_common.close_button": {
                                              // 오버라이드 가능한 변수
                                              "$rainbowpie_ui_theme_closebutton_default_color": "$rainbowpie_ui_theme_inventory_header_title_color",
                                              // 오버라이드 가능한 변수
                                              "$close_button_panel_size": [ "100%", "100%" ],
                                              // 겹치는 순서(숫자 클수록 위)
                                              "layer": 10,
                                              // 가로/세로 크기
                                              "size": [ "100%", "100%" ],
                                              // 기준점에서 이동하는 거리
                                              "offset": [ 0, 0 ],
                                              // 기준점(어디에서 시작할지)
                                              "anchor_from": "center",
                                              // 붙일 위치(어디에 놓을지)
                                              "anchor_to": "center"
                                            }
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "common_panel@common.common_panel": {
                // 오버라이드 가능한 변수
                "$dialog_background": "rainbowpie_ui_common.inventory_background",
                // 오버라이드 가능한 변수
                "$show_close_button": false,
                // 가로/세로 크기
                "size": [ "100%", "100% - 12.84916201117318%" ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle"
              }
            },
            {
              // ???/?? ??
              "crafting_top_half": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "70.23809523809524%", "40.22346368715084%" ], // 118x72
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-45.25139664804469%"],
                // 보이기/숨기기(공간 유지)
                "visible": "($top_half_variant = 'crafting.crafting_panel_top_half')",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "crafting_label@crafting.crafting_label": {
                      // 가로/세로 크기
                      "size": [ "91.66666666666667%", "13.88888888888889%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, "2.777777777777778%" ],
                      // ?? ??
                      "text_alignment": "left"
                    }
                  },
                  {
                    // ???/?? ??
                    "crafting_grid_3x3": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 가로/세로 크기
                      "size": [ "54%", "75%" ], // 54x54
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 3 ],
                      // 오버라이드 가능한 변수
                      "$cell_image_size": [ "100%y", "100%" ],
                      // 오버라이드 가능한 변수
                      "$item_renderer_panel_size": [ "100%y", "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "crafting_grid_3x3_1": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 목록 이름
                            "collection_name": "crafting_input_items",
                            // 오버라이드 가능한 변수
                            "$item_collection_name": "crafting_input_items",
                            // 가로/세로 크기
                            "size": [ "100%", "33.33333333333333%" ],

                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "container_item_0@rainbowpie_ui_inventory_and_container.container_item": {
                                  // 오버라이드 가능한 변수
                                  "$background_images": "crafting.crafting_container_cell_images",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // ?? ??
                                  "collection_index": 0
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "container_item_1@rainbowpie_ui_inventory_and_container.container_item": {
                                  // 오버라이드 가능한 변수
                                  "$background_images": "crafting.crafting_container_cell_images",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // ?? ??
                                  "collection_index": 1
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "container_item_2@rainbowpie_ui_inventory_and_container.container_item": {
                                  // 오버라이드 가능한 변수
                                  "$background_images": "crafting.crafting_container_cell_images",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // ?? ??
                                  "collection_index": 2
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "crafting_grid_3x3_2": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 목록 이름
                            "collection_name": "crafting_input_items",
                            // 오버라이드 가능한 변수
                            "$item_collection_name": "crafting_input_items",
                            // 가로/세로 크기
                            "size": [ "100%", "33.33333333333333%" ],

                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "container_item_3@rainbowpie_ui_inventory_and_container.container_item": {
                                  // 오버라이드 가능한 변수
                                  "$background_images": "crafting.crafting_container_cell_images",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // ?? ??
                                  "collection_index": 3
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "container_item_4@rainbowpie_ui_inventory_and_container.container_item": {
                                  // 오버라이드 가능한 변수
                                  "$background_images": "crafting.crafting_container_cell_images",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // ?? ??
                                  "collection_index": 4
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "container_item_5@rainbowpie_ui_inventory_and_container.container_item": {
                                  // 오버라이드 가능한 변수
                                  "$background_images": "crafting.crafting_container_cell_images",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // ?? ??
                                  "collection_index": 5
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "crafting_grid_3x3_3": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 목록 이름
                            "collection_name": "crafting_input_items",
                            // 오버라이드 가능한 변수
                            "$item_collection_name": "crafting_input_items",
                            // 가로/세로 크기
                            "size": [ "100%", "33.33333333333333%" ],

                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "container_item_6@rainbowpie_ui_inventory_and_container.container_item": {
                                  // 오버라이드 가능한 변수
                                  "$background_images": "crafting.crafting_container_cell_images",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // ?? ??
                                  "collection_index": 6
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "container_item_7@rainbowpie_ui_inventory_and_container.container_item": {
                                  // 오버라이드 가능한 변수
                                  "$background_images": "crafting.crafting_container_cell_images",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // ?? ??
                                  "collection_index": 7
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "container_item_8@rainbowpie_ui_inventory_and_container.container_item": {
                                  // 오버라이드 가능한 변수
                                  "$background_images": "crafting.crafting_container_cell_images",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // ?? ??
                                  "collection_index": 8
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "output_grid_3x3": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 목록 이름
                      "collection_name": "crafting_output_items",
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "crafting_output_items",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 가로/세로 크기
                      "size": [ "100%y", "36.11111111111111%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, "4.166666666666667%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_0@rainbowpie_ui_inventory_and_container.container_item": {
                            // 가로/세로 크기
                            "size": [ "100%y", "100%" ],
                            // ?? ??
                            "collection_index": 0,
                            // 오버라이드 가능한 변수
                            "$item_renderer_panel_size": [ "100%y", "69.23076923076923%" ],
                            // 오버라이드 가능한 변수
                            "$button_ref": "crafting.output_no_coalesce_container_slot_button",
                            // 오버라이드 가능한 변수
                            "$stack_count_binding_condition": "always",
                            // 오버라이드 가능한 변수
                            "$item_renderer_binding_condition": "always",
                            // 오버라이드 가능한 변수
                            "$background_images": "crafting.crafting_container_cell_images",

                            // 오버라이드 가능한 변수
                            "$focus_id_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_id": "crafting_output_item",

                            // 오버라이드 가능한 변수
                            "$focus_override_right_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_right": "FOCUS_OVERRIDE_STOP"
                          }
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "crafting_arrow_large@crafting.crafting_arrow_large": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 가로/세로 크기
                      "size": [ "18.64406779661017%", "20.83333333333333%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ "53.38983050847458%", "4.166666666666667%" ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "inventory_top_half": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "40.22346368715084%" ], // 162x72
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-45.25139664804469%"],
                // 보이기/숨기기(공간 유지)
                "visible": "($top_half_variant = 'crafting.survival_panel_top_half')",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "crafting_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 가로/세로 크기
                      "size": [ "44.44444444444444%", "100%" ], // 72x72
                      // 기준점에서 이동하는 거리
                      "offset": [ "55.55555555555556%", 0 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "crafting_label@crafting.crafting_label": {
                            // 가로/세로 크기
                            "size": [ "91.66666666666667%", "13.88888888888889%" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ 0, "2.777777777777778%" ],
                            // ?? ??
                            "text_alignment": "left"
                          }
                        },
                        {
                          // ???/?? ??
                          "crafting_grid_2x2": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 가로/세로 크기
                            "size": [ "50%", "50%" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ 0, "-5.555555555555556%" ],
                            // 오버라이드 가능한 변수
                            "$cell_image_size": [ "100%y", "100%" ],
                            // 오버라이드 가능한 변수
                            "$item_renderer_panel_size": [ "100%y", "100%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "crafting_grid_2x2_1": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 목록 이름
                                  "collection_name": "crafting_input_items",
                                  // 오버라이드 가능한 변수
                                  "$item_collection_name": "crafting_input_items",
                                  // 가로/세로 크기
                                  "size": [ "100%", "50%" ],

                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "container_item_0@rainbowpie_ui_inventory_and_container.container_item": {
                                        // 오버라이드 가능한 변수
                                        "$background_images": "crafting.crafting_container_cell_images",
                                        // 가로/세로 크기
                                        "size": [ "100%y", "100%" ],
                                        // ?? ??
                                        "collection_index": 0,
                                        // 오버라이드 가능한 변수
                                        "$focus_id_binding_type": "none",
                                        // 오버라이드 가능한 변수
                                        "$focus_id": "crafting_input_top_left",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_left_binding_type": "none",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_left": "armor_item_head"
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "container_item_1@rainbowpie_ui_inventory_and_container.container_item": {
                                        // 오버라이드 가능한 변수
                                        "$background_images": "crafting.crafting_container_cell_images",
                                        // 가로/세로 크기
                                        "size": [ "100%y", "100%" ],
                                        // ?? ??
                                        "collection_index": 1,
                                        // 오버라이드 가능한 변수
                                        "$focus_id_binding_type": "none",
                                        // 오버라이드 가능한 변수
                                        "$focus_id": "crafting_input_top_right",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_right_binding_type": "none",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_right": "crafting_output_item"
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "crafting_grid_2x2_2": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 목록 이름
                                  "collection_name": "crafting_input_items",
                                  // 오버라이드 가능한 변수
                                  "$item_collection_name": "crafting_input_items",
                                  // 가로/세로 크기
                                  "size": [ "100%", "50%" ],

                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "container_item_2@rainbowpie_ui_inventory_and_container.container_item": {
                                        // 오버라이드 가능한 변수
                                        "$background_images": "crafting.crafting_container_cell_images",
                                        // 가로/세로 크기
                                        "size": [ "100%y", "100%" ],
                                        // ?? ??
                                        "collection_index": 2,
                                        // 오버라이드 가능한 변수
                                        "$focus_id_binding_type": "none",
                                        // 오버라이드 가능한 변수
                                        "$focus_id": "crafting_input_mid_left",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_left_binding_type": "none",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_left": "armor_item_legs"
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "container_item_3@rainbowpie_ui_inventory_and_container.container_item": {
                                        // 오버라이드 가능한 변수
                                        "$background_images": "crafting.crafting_container_cell_images",
                                        // 가로/세로 크기
                                        "size": [ "100%y", "100%" ],
                                        // ?? ??
                                        "collection_index": 3,
                                        // 오버라이드 가능한 변수
                                        "$focus_override_right_binding_type": "none",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_right": "crafting_output_item"
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "output_grid_2x2": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 목록 이름
                            "collection_name": "crafting_output_items",
                            // 오버라이드 가능한 변수
                            "$item_collection_name": "crafting_output_items",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 가로/세로 크기
                            "size": [ "25%", "25%" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ "75%", "-5.555555555555556%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "container_item_0@rainbowpie_ui_inventory_and_container.container_item": {
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // ?? ??
                                  "collection_index": 0,
                                  // 오버라이드 가능한 변수
                                  "$button_ref": "crafting.output_no_coalesce_container_slot_button",
                                  // 오버라이드 가능한 변수
                                  "$background_images": "crafting.crafting_container_cell_images",
                                  // 오버라이드 가능한 변수
                                  "$item_renderer_binding_condition": "always",
                                  // 오버라이드 가능한 변수
                                  "$stack_count_binding_condition": "always",

                                  // 오버라이드 가능한 변수
                                  "$focus_id_binding_type": "none",
                                  // 오버라이드 가능한 변수
                                  "$focus_id": "crafting_output_item",
                                  // 오버라이드 가능한 변수
                                  "$focus_override_left_binding_type": "none",
                                  // 오버라이드 가능한 변수
                                  "$focus_override_left": "crafting_input_top_right",
                                  // 오버라이드 가능한 변수
                                  "$focus_override_up_binding_type": "none",
                                  // 오버라이드 가능한 변수
                                  "$focus_override_up": "help_button"
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "crafting_arrow@crafting.crafting_arrow": {
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 가로/세로 크기
                            "size": [ "22.22222222222222%", "18.05555555555556%" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ "51.38888888888889%", "-5.555555555555556%" ],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // ?? ??
                                "source_control_name": "crafting_panel",
                                // ?? ??
                                "resolve_sibling_scope": true,
                                // 계산식/참조 값
                                "source_property_name": "(not #needs_crafting_table)",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "crafting_table@crafting.item_renderer": {
                            // 기준점에서 이동하는 거리
                            "offset": [ 10, -5 ],
                            // 이 컨트롤 안에서 쓰는 임시 저장소
                            "property_bag": {
                              // ???/??? ?
                              "#item_id_aux": 3801088
                            },
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // ?? ??
                                "source_control_name": "crafting_panel",
                                // ?? ??
                                "resolve_sibling_scope": true,
                                // 계산식/참조 값
                                "source_property_name": "(#needs_crafting_table)",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ]
                          }
                        }
                      ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#needs_crafting_table",
                          // ?? ???
                          "binding_condition": "visible"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "player_background": {
                      // 이미지 표시
                      "type": "image",
                      // 사용할 이미지 경로
                      "texture": "textures/ui/Black",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 가로/세로 크기
                      "size": [ "33.33333333333333%", "100%" ], // 54x72
                      // 기준점에서 이동하는 거리
                      "offset": [ "11.11111111111111%", 0 ],
                      // ???
                      "alpha": 0.4,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "player_renderer_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "55.55555555555556%", "41.66666666666667%" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ 0, "-19.44444444444444%" ],

                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "player_renderer": {
                                  // 특수 렌더러(그라디언트/플레이어 등)
                                  "type": "custom",
                                  // 커스텀 렌더러 종류
                                  "renderer": "live_player_renderer",
                                  // 이 컨트롤 안에서 쓰는 임시 저장소
                                  "property_bag": {
                                    // ???/??? ?
                                    "#look_at_cursor": true
                                  },
                                  // ????? ?? ?
                                  "animation_reset_name": "screen_animation_reset",
                                  // 애니메이션 목록
                                  "anims": [
                                    "@common.screen_exit_size_animation_push",
                                    "@common.screen_exit_size_animation_pop",
                                    "@common.screen_entrance_size_animation_push",
                                    "@common.screen_entrance_size_animation_pop"
                                  ],
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 8,
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "center",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "center"
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "armor_grid": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 목록 이름
                      "collection_name": "armor_items",
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "armor_items",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 가로/세로 크기
                      "size": [ "11.11111111111111%", "100%" ],
                      // 오버라이드 가능한 변수
                      "$cell_image_size": [ "100%", "100%x" ],
                      // 오버라이드 가능한 변수
                      "$item_renderer_panel_size": [ "100%", "100%x" ],
                      // 오버라이드 가능한 변수
                      "$armor_overlay_size": [ "88.88888888888889%", "88.88888888888889%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_0@rainbowpie_ui_inventory_and_container.container_item": {
                            // 가로/세로 크기
                            "size": [ "100%", "100%x" ],

                            // ?? ??
                            "collection_index": 0,
                            // 오버라이드 가능한 변수
                            "$cell_overlay_ref": "crafting.armor_overlay_helmet",
                            // 오버라이드 가능한 변수
                            "$button_ref": "crafting.no_coalesce_container_slot_button",

                            // 오버라이드 가능한 변수
                            "$focus_id_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_id": "armor_item_head",

                            // 오버라이드 가능한 변수
                            "$focus_override_right_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_right": "crafting_input_top_left"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_1@rainbowpie_ui_inventory_and_container.container_item": {
                            // 가로/세로 크기
                            "size": [ "100%", "100%x" ],

                            // ?? ??
                            "collection_index": 1,
                            // 오버라이드 가능한 변수
                            "$cell_overlay_ref": "crafting.armor_overlay_chest",
                            // 오버라이드 가능한 변수
                            "$button_ref": "crafting.no_coalesce_container_slot_button",

                            // 오버라이드 가능한 변수
                            "$focus_id_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_id": "armor_item_chest",

                            // 오버라이드 가능한 변수
                            "$focus_override_right_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_right": "crafting_input_top_left"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_2@rainbowpie_ui_inventory_and_container.container_item": {
                            // 가로/세로 크기
                            "size": [ "100%", "100%x" ],

                            // ?? ??
                            "collection_index": 2,
                            // 오버라이드 가능한 변수
                            "$cell_overlay_ref": "crafting.armor_overlay_legs",
                            // 오버라이드 가능한 변수
                            "$button_ref": "crafting.no_coalesce_container_slot_button",

                            // 오버라이드 가능한 변수
                            "$focus_id_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_id": "armor_item_legs",

                            // 오버라이드 가능한 변수
                            "$focus_override_right_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_right": "crafting_input_mid_left"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_3@rainbowpie_ui_inventory_and_container.container_item": {
                            // 가로/세로 크기
                            "size": [ "100%", "100%x" ],

                            // ?? ??
                            "collection_index": 3,
                            // 오버라이드 가능한 변수
                            "$cell_overlay_ref": "crafting.armor_image_feet",
                            // 오버라이드 가능한 변수
                            "$button_ref": "crafting.no_coalesce_container_slot_button",

                            // 오버라이드 가능한 변수
                            "$focus_id_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_id": "armor_item_feet",

                            // 오버라이드 가능한 변수
                            "$focus_override_right_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_right": "offhand_items0"
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "offhand_grid": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 목록 이름
                      "collection_name": "offhand_items",
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "offhand_items",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_left",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_left",
                      // 가로/세로 크기
                      "size": [ "11.11111111111111%", "25%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ "44.44444444444444%", 0 ],
                      // 오버라이드 가능한 변수
                      "$cell_image_size": [ "100%", "100%x" ],
                      // 오버라이드 가능한 변수
                      "$item_renderer_panel_size": [ "100%", "100%x" ],
                      // 오버라이드 가능한 변수
                      "$offhand_overlay_size": [ "88.88888888888889%", "88.88888888888889%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_0@rainbowpie_ui_inventory_and_container.container_item": {
                            // 가로/세로 크기
                            "size": [ "100%", "100%x" ],

                            // ?? ??
                            "collection_index": 0,
                            // 오버라이드 가능한 변수
                            "$cell_overlay_ref": "crafting.armor_overlay_shield",
                            // 오버라이드 가능한 변수
                            "$button_ref": "crafting.no_coalesce_container_slot_button",

                            // 오버라이드 가능한 변수
                            "$focus_override_left_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_left": "armor_item_feet"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory@rainbowpie_ui_inventory_and_container.inventory_panel_bottom_half": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "30.16759776536313%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-13.40782122905028%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar@rainbowpie_ui_inventory_and_container.hotbar_grid_template": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "10.05586592178771%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-1.675977653631285%" ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "items_durability_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", 16 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "item_renderer@rainbowpie_ui_common.item_renderer": {
                // 가로/세로 크기
                "size": [ "100%y", "100%" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#item_id_aux",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "$item_collection_name"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_0": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 2, 2 ]
              }
            },
            {
              // ???/?? ??
              "selected_durability_text_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%c", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "stack_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 가로/세로 크기
                      "size": [ "100%c", "100%cm" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "durability_title@rainbowpie_ui_common.text_label": {
                            // 보여줄 글자
                            "text": "rainbowpie.ui.inventory.durability",
                            // 완전히 제거(공간도 없음)
                            "ignored": "(not $rainbowpie_ui_flag_durabilityview_title)"
                          }
                        },
                        {
                          // ???/?? ??
                          "padding": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 1, 0 ],
                            // 완전히 제거(공간도 없음)
                            "ignored": "(not $rainbowpie_ui_flag_durabilityview_title)"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "durability_text@rainbowpie_ui_common.text_label": {
                            // 보여줄 글자
                            "text": "#text",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#item_durability_total_amount",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection",
                                // 목록 이름
                                "binding_collection_name": "$item_collection_name"
                              },
                              {
                                // 가져올 값 이름
                                "binding_name": "#item_durability_current_amount",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection",
                                // 목록 이름
                                "binding_collection_name": "$item_collection_name"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(((#amount_current>#item_durability_current_amount)*-1+1)*((#amount_current<#item_durability_current_amount)*1+#amount_current))",
                                // 결과가 들어갈 속성
                                "target_property_name": "#amount_current",
                                // ?? ???
                                "binding_condition": "always_when_visible"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(((#amount_total>#item_durability_total_amount)*-1+1)*((#amount_total<#item_durability_total_amount)*1+#amount_total))",
                                // 결과가 들어갈 속성
                                "target_property_name": "#amount_total",
                                // ?? ???
                                "binding_condition": "always_when_visible"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "('\"' + #amount_current + '/' + #amount_total + '\"')",
                                // 결과가 들어갈 속성
                                "target_property_name": "#text"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#item_durability_total_amount",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$item_collection_name"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (#item_durability_total_amount = 0)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#item_durability_total_amount",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$item_collection_name"
      },
      {
        // 가져올 값 이름
        "binding_name": "#item_id_aux",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$item_collection_name"
      }
    ]
  },

  // ???/?? ??
  "armor_items_durability": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "armor_items",
    // 오버라이드 가능한 변수
    "$item_collection_name": "armor_items",
    // 가로/세로 크기
    "size": [ "100%cm", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "armor_items_durability_slot_0@rainbowpieui_crafting.items_durability_item": {
          // ?? ??
          "collection_index": 0
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "armor_items_durability_slot_1@rainbowpieui_crafting.items_durability_item": {
          // ?? ??
          "collection_index": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "armor_items_durability_slot_2@rainbowpieui_crafting.items_durability_item": {
          // ?? ??
          "collection_index": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "armor_items_durability_slot_3@rainbowpieui_crafting.items_durability_item": {
          // ?? ??
          "collection_index": 3
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "armor_items_durability_slot_0",
        // 계산식/참조 값
        "source_property_name": "#item_durability_total_amount",
        // 결과가 들어갈 속성
        "target_property_name": "#armor_lot_0_item_durability_total_amount"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "armor_items_durability_slot_1",
        // 계산식/참조 값
        "source_property_name": "#item_durability_total_amount",
        // 결과가 들어갈 속성
        "target_property_name": "#armor_lot_1_item_durability_total_amount"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "armor_items_durability_slot_2",
        // 계산식/참조 값
        "source_property_name": "#item_durability_total_amount",
        // 결과가 들어갈 속성
        "target_property_name": "#armor_lot_2_item_durability_total_amount"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "armor_items_durability_slot_3",
        // 계산식/참조 값
        "source_property_name": "#item_durability_total_amount",
        // 결과가 들어갈 속성
        "target_property_name": "#armor_lot_3_item_durability_total_amount"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#armor_lot_0_item_durability_total_amount + #armor_lot_1_item_durability_total_amount + #armor_lot_2_item_durability_total_amount + #armor_lot_3_item_durability_total_amount)",
        // 결과가 들어갈 속성
        "target_property_name": "#armor_item_durability_total_amount"
      }
    ]
  },

  // ???/?? ??
  "offhand_items_durability": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 목록 이름
    "collection_name": "offhand_items",
    // 오버라이드 가능한 변수
    "$item_collection_name": "offhand_items",
    // 가로/세로 크기
    "size": [ "100%cm", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "offhand_items_durability_slot_0@rainbowpieui_crafting.items_durability_item": {
          // ?? ??
          "collection_index": 0
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "offhand_items_durability_slot_0",
        // 계산식/참조 값
        "source_property_name": "#item_durability_total_amount",
        // 결과가 들어갈 속성
        "target_property_name": "#offhand_lot_0_item_durability_total_amount"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#offhand_lot_0_item_durability_total_amount)",
        // 결과가 들어갈 속성
        "target_property_name": "#offhand_item_durability_total_amount"
      }
    ]
  },

  // ???/?? ??
  "armor_and_offhand_durability": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "100%c + 8px", "100%c + 4px" ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_home + '/r_white')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 30,
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "armor_and_offhand_durability_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 기준점에서 이동하는 거리
          "offset": [ -1, 0 ],
          // 가로/세로 크기
          "size": [ "100%cm", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "armor_items_durability@rainbowpieui_crafting.armor_items_durability": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "offhand_items_durability@rainbowpieui_crafting.offhand_items_durability": {}
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "armor_items_durability",
        // 계산식/참조 값
        "source_property_name": "#armor_item_durability_total_amount",
        // 결과가 들어갈 속성
        "target_property_name": "#armor_item_durability_total_amount"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "offhand_items_durability",
        // 계산식/참조 값
        "source_property_name": "#offhand_item_durability_total_amount",
        // 결과가 들어갈 속성
        "target_property_name": "#offhand_item_durability_total_amount"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#armor_item_durability_total_amount + #offhand_item_durability_total_amount)",
        // 결과가 들어갈 속성
        "target_property_name": "#slots_item_durability_total_amount"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not (#slots_item_durability_total_amount = 0)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "armor_durability_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_9ce040c1)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "armor_and_offhand_durability@rainbowpieui_crafting.armor_and_offhand_durability": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 기준점에서 이동하는 거리
          "offset": [ "100%x + 2px", 4 ]
        }
      }
    ]
  },

  // ???/?? ??
  "armor_durability_panel_v2": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_9ce040c1)",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "crafting_helper_output_slot",
        // 계산식/참조 값
        "source_property_name": "(#item_id_aux = -1)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible",
        // 완전히 제거(공간도 없음)
        "ignored": "(not $rainbowpie_ui_flag_73085b33)"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "armor_and_offhand_durability@rainbowpieui_crafting.armor_and_offhand_durability": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 기준점에서 이동하는 거리
          "offset": [ "100%x + 2px", 23 ]
        }
      }
    ]
  }
}

invite_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: invite_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_invite",

  // 다른 템플릿을 가져와서 확장(상속)
  "horizontal_invite_panel@rainbowpie_ui_dialog.dialog_panel": {
    // 가로/세로 크기
    "size": "$large_screen_size",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialog_content": "rainbowpieui_invite.horizontal_invite_dialog_content",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialog_show_background": false,
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$is_inviting_to_realm",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_dialogheader_title": "invite.titleRealms"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "(not $is_inviting_to_realm)",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_dialogheader_title": "invite.title"
      }
    ]
  },

  // ???/?? ??
  "horizontal_invite_dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "stack_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "scrolling_area@invite.scrolling_area": {
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_scrollbar_enabled": true
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c + 1px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100% + 1px", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "button_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_default_alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 가로/세로 크기
                            "size": [ "100%", 23 ],
                            // 오버라이드 가능한 변수
                            "$add_button_mappings": [
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.controller_secondary_select",
                                // 어떤 동작을 실행할지
                                "to_button_id": "$pressed_button_name",
                                // 입력 시점(pressed 등)
                                "mapping_type": "global"
                              },
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_select",
                                // 어떤 동작을 실행할지
                                "to_button_id": "$pressed_button_name",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed"
                              },
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_ok",
                                // 어떤 동작을 실행할지
                                "to_button_id": "$pressed_button_name",
                                // 입력 시점(pressed 등)
                                "mapping_type": "focused"
                              }
                            ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "add_friend_button@invite.add_friend_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$focus_override_down": "FOCUS_OVERRIDE_STOP"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "add_member_button@invite.add_member_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$focus_override_down": "FOCUS_OVERRIDE_STOP"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "send_button@invite.send_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$focus_override_down": "FOCUS_OVERRIDE_STOP"
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "invite_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$invite_panel|default": "rainbowpieui_invite.horizontal_invite_panel",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "($use_vertical_button_stack_panel and (not $is_inviting_to_realm or $is_realm_owner))",
        // 오버라이드 가능한 변수
        "$invite_panel": "invite.vertical_invite_panel"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "invite_panel@rainbowpieui_invite.horizontal_invite_panel": {
              }
            }
          ]
        }
      }
    ]
  }
}

manifest_validation_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: manifest_validation_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_manifest_validation",

  // ???/?? ??
  "verified_pack_description_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ]
  },

  // ???/?? ??
  "verified_pack_description_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "default" ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_packverifiy_packuuid|default": "",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_packverifiy_packdesc|default": "",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "pack_desc@rainbowpie_ui_common.editable_label": {
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // ??? ?? ?
          "text_box_name": "pack_desc_text",
          // ??? ?? ?
          "text_control": "pack_desc_display_text",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pack_desc_display_text@rainbowpie_ui_common.text_label": {
                // 가로/세로 크기
                "size": [ "100%", "default" ],
                // 보여줄 글자
                "text": "$rainbowpie_localui_packverifiy_packdesc"
              }
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#pack_id"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#pack_id = $rainbowpie_localui_packverifiy_packuuid)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "verify_detail_button_toggle_base@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_button_checked_locked_hover",

    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "rainbowpie.ui.manifest_validation.verifiedDetail",

    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_verified_pack_detail",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 1,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  },

  // ???/?? ??
  "verified_pack_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 25 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_packverifiy_packuuid|default": "",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_packverifiy_packname|default": "",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_packverifiy_packauther|default": "",
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@rainbowpie_ui_dialog.content_background": {
          // 가로/세로 크기
          "size": [ "100%", "100% - 1px" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "title_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 가로/세로 크기
                "size": [ "100% - 84px", "100%cm" ],
                // 기준점에서 이동하는 거리
                "offset": [ 2, 0 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title_text@rainbowpie_ui_common.text_label": {
                      // 가로/세로 크기
                      "size": [ "default", "default" ],
                      // 보여줄 글자
                      "text": "rainbowpie.ui.manifest_validation.verifiedPack",
                      // ?? (R,G,B,A)
                      "color": [ 0.333, 1.0, 0.333 ]
                    }
                  },
                  {
                    // ???/?? ??
                    "space": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 2, 2 ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "text@rainbowpie_ui_common.text_label": {
                      // 가로/세로 크기
                      "size": [ "fill", "default" ],
                      // 보여줄 글자
                      "text": "($rainbowpie_localui_packverifiy_packname + '  -  ' + $rainbowpie_localui_packverifiy_packauther)"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#pack_id"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#pack_id = $rainbowpie_localui_packverifiy_packuuid)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "verified_pack_list_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // ?? ????
    "clips_children": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_packverifiy_item|default": [],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "verified_pack_list_items": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "fill", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": "$rainbowpie_localui_packverifiy_item"
        }
      },
      {
        // ???/?? ??
        "detail_button_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", 0 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background@rainbowpie_ui_dialog.content_background": {
                // 기준점에서 이동하는 거리
                "offset": [ 0, 1 ],
                // 가로/세로 크기
                "size": [ 80, 24 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "detail_button@rainbowpieui_manifest_validation.verify_detail_button_toggle_base": {
                      // 오버라이드 가능한 변수
                      "$button_image_size": [ "100% - 2px", "100% - 1px" ],
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 가로/세로 크기
                      "size": [ 80, 23 ],
                      // 오버라이드 가능한 변수
                      "$toggle_group_forced_index": 1000,
                      // 오버라이드 가능한 변수
                      "$toggle_view_binding_name": "open_detail_dialog"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "title_label@rainbowpie_ui_common.text_label": {
    // ?? ?? ??
    "font_scale_factor": 1.5
  },

  // ??? ??
  "scrolling_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "pack_banner": {
          // 이미지 표시
          "type": "image",
          // ?? ??
          "fill": true,
          // ??? ?? ?
          "allow_debug_missing_texture": false,
          // ??? ?? ?
          "force_texture_reload": true,
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 11,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#icon_path",
              // ?? ???
              "binding_condition": "visible"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('\"' + #icon_path - 'pack_icon.png' + 'pack_banner.png' + '\"')",
              // 결과가 들어갈 속성
              "target_property_name": "#texture"
            },
            {
              // 가져올 값 이름
              "binding_name": "#icon_zip",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#zip_folder",
              // ?? ???
              "binding_condition": "visible"
            },
            {
              // 가져올 값 이름
              "binding_name": "#icon_file_system",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture_file_system",
              // ?? ???
              "binding_condition": "visible"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "pack_info_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 가로/세로 크기
                      "size": [ "100%", "100%cm" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "icon@manifest_validation.icon_image": {
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1,
                            // 가로/세로 크기
                            "size": [ "100%y", 50 ]
                          }
                        },
                        {
                          // ???/?? ??
                          "title_and_description": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 가로/세로 크기
                            "size": [ "fill", "100%c" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "title_panel": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ "100%", "100%c" ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // ???/?? ??
                                      "title_text_stack_panel": {
                                        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                        "type": "stack_panel",
                                        // 쌓는 방향(가로/세로)
                                        "orientation": "horizontal",
                                        // 가로/세로 크기
                                        "size": [ "100% - 4px", "100%c" ],
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "center",
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "center",
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "title@rainbowpie_ui_common.editable_label": {
                                              // 가로/세로 크기
                                              "size": [ "100%", "100%c" ],
                                              // ??? ?? ?
                                              "text_box_name": "title_text",
                                              // ??? ?? ?
                                              "text_control": "title_display_text",
                                              // 이 안에 들어가는 부품 목록
                                              "controls": [
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "title_display_text@rainbowpieui_manifest_validation.title_label": {
                                                    // 가로/세로 크기
                                                    "size": [ "100%", "default" ],
                                                    // 보여줄 글자
                                                    "text": "#pack_header_title",
                                                    // 게임 값과 연결하는 규칙 목록
                                                    "bindings": [
                                                      {
                                                        // 가져올 값 이름
                                                        "binding_name": "#pack_header_title",
                                                        // ?? ???
                                                        "binding_condition": "visible"
                                                      }
                                                    ]
                                                  }
                                                }
                                              ]
                                            }
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "description_panel": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ "100%", "100%c" ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "description@rainbowpie_ui_common.editable_label": {
                                        // 가로/세로 크기
                                        "size": [ "100% - 4px", "100%c" ],
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "center",
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "center",
                                        // ??? ?? ?
                                        "text_box_name": "description_text",
                                        // ??? ?? ?
                                        "text_control": "description_display_text",
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "description_display_text@rainbowpie_ui_common.text_label": {
                                              // 가로/세로 크기
                                              "size": [ "100%", "default" ],
                                              // 보여줄 글자
                                              "text": "#pack_header_description",
                                              // 게임 값과 연결하는 규칙 목록
                                              "bindings": [
                                                {
                                                  // 가져올 값 이름
                                                  "binding_name": "#pack_header_description",
                                                  // ?? ???
                                                  "binding_condition": "visible"
                                                }
                                              ]
                                            }
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "button_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 87, 50 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "refresh@manifest_validation.refresh_text_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_image_size": [ "100%", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 가로/세로 크기
                                  "size": [ "100% - 7px", 20 ],
                                  // 기준점에서 이동하는 거리
                                  "offset": [ 0, 3.5 ],
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_middle",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_middle",
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 1
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "delete@manifest_validation.delete_text_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_image_size": [ "100%", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 가로/세로 크기
                                  "size": [ "100% - 7px", 20 ],
                                  // 기준점에서 이동하는 거리
                                  "offset": [ 0, -3.5 ],
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "bottom_middle",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "bottom_middle",
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 1
                                }
                              }
                            ],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#pack_id",
                                // ?? ???
                                "binding_condition": "visible"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(not (#pack_id = $mintui_pack_uuid))",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "secondary_panel@rainbowpie_ui_dialog.content_background": {
          // 가로/세로 크기
          "size": [ "100%", "100%c + 4px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "stack_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100% - 6px", "100%cm" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "title_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "vertical",
                      // 가로/세로 크기
                      "size": [ "100%cm", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "pack_id@rainbowpie_ui_common.text_label": {
                            // 가로/세로 크기
                            "size": [ "default", "default" ],
                            // 보여줄 글자
                            "text": "manifestvalidation.packid"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "pack_version@rainbowpie_ui_common.text_label": {
                            // 가로/세로 크기
                            "size": [ "default", "default" ],
                            // 보여줄 글자
                            "text": "manifestvalidation.packversion"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "pack_path@rainbowpie_ui_common.text_label": {
                            // 가로/세로 크기
                            "size": [ "default", "default" ],
                            // 보여줄 글자
                            "text": "manifestvalidation.filelocation"
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "middle_padding": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 2, 0 ]
                    }
                  },
                  {
                    // ???/?? ??
                    "value_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "vertical",
                      // 가로/세로 크기
                      "size": [ "fill", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "pack_id@rainbowpie_ui_common.editable_label": {
                            // 가로/세로 크기
                            "size": [ "100%", "100%c" ],
                            // ??? ?? ?
                            "text_box_name": "pack_id_text",
                            // ??? ?? ?
                            "text_control": "pack_id_display_text",
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "pack_id_display_text@rainbowpie_ui_common.text_label": {
                                  // 가로/세로 크기
                                  "size": [ "100%", "default" ],
                                  // 보여줄 글자
                                  "text": "#pack_id",
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#pack_id",
                                      // ?? ???
                                      "binding_condition": "visible"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "pack_version@rainbowpie_ui_common.editable_label": {
                            // 가로/세로 크기
                            "size": [ "100%", "100%c" ],
                            // ??? ?? ?
                            "text_box_name": "pack_version_text",
                            // ??? ?? ?
                            "text_control": "pack_version_display_text",
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "pack_version_display_text@rainbowpie_ui_common.text_label": {
                                  // 가로/세로 크기
                                  "size": [ "100%", "default" ],
                                  // 보여줄 글자
                                  "text": "#pack_version",
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#pack_version",
                                      // ?? ???
                                      "binding_condition": "visible"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "pack_path@rainbowpie_ui_common.editable_label": {
                            // 가로/세로 크기
                            "size": [ "100%", "100%c" ],
                            // ??? ?? ?
                            "text_box_name": "pack_path_text",
                            // ??? ?? ?
                            "text_control": "pack_path_display_text",
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "pack_path_display_text@rainbowpie_ui_common.text_label": {
                                  // 가로/세로 크기
                                  "size": [ "100%", "default" ],
                                  // 보여줄 글자
                                  "text": "#pack_path",
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#pack_path",
                                      // ?? ???
                                      "binding_condition": "visible"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "verified_item@rainbowpieui_verified_pack.verified_pack_list": {}
      },
      {
        // ???/?? ??
        "padding_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "error_list@rainbowpieui_manifest_validation.list_title": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_list_title_text": "manifestvalidation.errorlist"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "error@rainbowpieui_manifest_validation.error_content_grid": {}
      },
      {
        // ???/?? ??
        "end_background": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 0 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "secondary_panel@rainbowpie_ui_dialog.content_background": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점에서 이동하는 거리
                "offset": [ 0, 1 ],
                // 가로/세로 크기
                "size": [ "100%", 5000 ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "error_content_grid": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 목록 아이템을 자동으로 생성
    "factory": {
      // ?? ??
      "name": "pack_error_factory",
      // ??? ???
      "control_name": "rainbowpieui_manifest_validation.error_pack_content_layout"
    },
    // 목록 이름
    "collection_name": "pack_errors",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#error_grid_dimensions",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
      }
    ]
  },

  // ???/?? ??
  "error_pack_content_layout": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c + 1px" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@rainbowpie_ui_dialog.content_background": {
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "error_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "vertical",
                // 가로/세로 크기
                "size": [ "100% - 8px", "100%c + 8px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "error_header_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%", "100%cm + 2px" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "title_text@rainbowpie_ui_common.text_label": {
                            // 가로/세로 크기
                            "size": [ "default", "default" ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 보여줄 글자
                            "text": "#error_type_label",
                            // ?? ?? ??
                            "font_scale_factor": 1.2,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "pack_errors",
                                // 가져올 값 이름
                                "binding_name": "#error_type_label",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "button@manifest_validation.clipboard_button": {
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100%", "100%" ],
                            // 오버라이드 가능한 변수
                            "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "right_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "right_middle",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#has_errors_or_warnings",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              },
                              {
                                // 목록 이름
                                "binding_collection_name": "pack_errors",
                                // 목록 인덱스/현재 항목 정보 제공
                                "binding_type": "collection_details"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "error_text_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 가로/세로 크기
                      "size": [ "100%", "100%cm" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "error_text@rainbowpie_ui_common.text_label": {
                            // 가로/세로 크기
                            "size": [ 30, 10 ],
                            // 보여줄 글자
                            "text": "manifestvalidation.issue"
                          }
                        },
                        {
                          // ???/?? ??
                          "space": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ 2, 2 ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "error_text@rainbowpie_ui_common.text_label": {
                            // 가로/세로 크기
                            "size": [ "fill", "default" ],
                            // 보여줄 글자
                            "text": "#error_content_label",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "pack_errors",
                                // 가져올 값 이름
                                "binding_name": "#error_content_label",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              }
                            ]
                          }
                        }
                      ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#has_errors_or_warnings",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "list_title": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 14 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "list_title@rainbowpie_ui_common.title_background": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_list_title_text|default": "TITLE TEXT",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_list_title_bindings|default": [],
          // 가로/세로 크기
          "size": [ "100%", 14 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "text_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100% - 4px", 10 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title@rainbowpie_ui_common.title_label": {
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 보여줄 글자
                      "text": "$rainbowpie_localui_list_title_text",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": "$rainbowpie_localui_list_title_bindings"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "scrolling_panel@common.scrolling_panel": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_scrollbar_enabled": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 오버라이드 가능한 변수
          "$scrolling_pane_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$scrolling_content": "rainbowpieui_manifest_validation.scrolling_content",
          // 오버라이드 가능한 변수
          "$scroll_size": [ 4, "100%" ],
          // 오버라이드 가능한 변수
          "$scroll_bar_left_padding_size": [ 0.5, 0 ],
          // 오버라이드 가능한 변수
          "$scroll_bar_right_padding_size": [ 0, 0 ],
          // 오버라이드 가능한 변수
          "$show_background": false
        }
      }
    ]
  },

  // ???/?? ??
  "detail_scrolling_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c + 4px" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100% - 6px", "100%c" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 2 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "label_0@rainbowpie_ui_common.text_label": {
                // 가로/세로 크기
                "size": [ "100%", "default" ],
                // 보여줄 글자
                "text": "rainbowpie.ui.manifest_validation.verifiedDetail.warn",
                // ?? (R,G,B,A)
                "color": [ 1.0, 1.0, 0.333 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "label_1@rainbowpie_ui_common.text_label": {
                // 가로/세로 크기
                "size": [ "100%", "default" ],
                // 보여줄 글자
                "text": "rainbowpie.ui.manifest_validation.verifiedDetail.description",
                // ?? (R,G,B,A)
                "color": [ 0.333, 0.333, 1.0 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "verified_item@rainbowpieui_verified_pack.verified_pack_description": {}
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "detail_dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "scrolling_panel@common.scrolling_panel": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_scrollbar_enabled": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 오버라이드 가능한 변수
          "$scrolling_pane_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$scrolling_content": "rainbowpieui_manifest_validation.detail_scrolling_content",
          // 오버라이드 가능한 변수
          "$scroll_size": [ 4, "100%" ],
          // 오버라이드 가능한 변수
          "$show_background": false
        }
      }
    ]
  },

  // ???/?? ??
  "detail_dialog_button": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "close_detail_button@rainbowpieui_manifest_validation.verify_detail_button_toggle_base": {
                // 오버라이드 가능한 변수
                "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
                // 오버라이드 가능한 변수
                "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
                // 오버라이드 가능한 변수
                "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
                // 오버라이드 가능한 변수
                "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
                // 오버라이드 가능한 변수
                "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
                // 오버라이드 가능한 변수
                "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
                // 오버라이드 가능한 변수
                "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
                // 오버라이드 가능한 변수
                "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
                // 오버라이드 가능한 변수
                "$toggle_focus_enabled": false,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_default_alpha": 0.0,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_hover_color": "$rainbowpie_ui_theme_closebutton_hover_background_color",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_hover_alpha": "$rainbowpie_ui_theme_closebutton_hover_background_alpha",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_pressed_color": "$rainbowpie_ui_theme_closebutton_pressed_background_color",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_pressed_alpha": "$rainbowpie_ui_theme_closebutton_pressed_background_alpha",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_border_enabled": false,
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$button_content": "rainbowpieui_manifest_validation.close_button_icon",
                // 가로/세로 크기
                "size": [ "100%y", "100%" ],
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": 10,
                // 오버라이드 가능한 변수
                "$toggle_view_binding_name": "close_detail_dialog",
                // 오버라이드 가능한 변수
                "$button_mappings": [
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_select",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_ok",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_cancel",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "close_button_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/global/close_button/close')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_localui_button_text_color"
  },

  // ???/?? ??
  "manifest_validation_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "screen_content": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 보이기/숨기기(공간 유지)
          "visible": true,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "screen_content@rainbowpie_ui_common.screen_content": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screen_content": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "dialog@rainbowpie_ui_dialog.dialog_panel": {
                      // 가로/세로 크기
                      "size": "$extra_large_screen_size",
                      // ?? ?? ?
                      "max_size": "$extra_large_max_screen_size",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_dialogheader_title": "manifestvalidation.title",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_dialog_content": "rainbowpieui_manifest_validation.dialog_content",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_dialog_show_background": false
                    }
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "open_detail_dialog",
              // 계산식/참조 값
              "source_property_name": "(not #toggle_state)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "subscreen_content": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "dialog@rainbowpie_ui_dialog.dialog_panel": {
                // 가로/세로 크기
                "size": "$extra_large_screen_size",
                // ?? ?? ?
                "max_size": "$extra_large_max_screen_size",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title": "rainbowpie.ui.manifest_validation.verifiedDetail.title",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_extra_controls": "rainbowpieui_manifest_validation.detail_dialog_button",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_show_close": false,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialog_content": "rainbowpieui_manifest_validation.detail_dialog_content"
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "open_detail_dialog",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  }
}

mob_effect_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: mob_effect_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_mob_effect"
}

npc_interact_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: npc_interact_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_npc_interact",

  // 다른 템플릿을 가져와서 확장(상속)
  "top_tab@common_tabs.tab_top": {
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": 0.0,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.2,

    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$toggle_tts_enabled_binding_type": "global",
    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpieui_navigation_tab",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 10,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 오버라이드 가능한 변수
    "$toggle_tts_type_priority": 1001,
    // 오버라이드 가능한 변수
    "$toggle_tts_toggle_on_text": "",
    // 오버라이드 가능한 변수
    "$toggle_tts_toggle_off_text": "",
    // 오버라이드 가능한 변수
    "$toggle_tts_index_priority": 1002,
    // 오버라이드 가능한 변수
    "$tab_content": "rainbowpieui_npc_interact.top_tab_content"
  },

  // ???/?? ??
  "top_tab_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "tab_label@rainbowpie_ui_common.text_label_notheme": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 가로/세로 크기
          "size": [ "default", "default" ],
          // ?? ??
          "text_alignment": "center",
          // 보여줄 글자
          "text": "$tab_text",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // ???/?? ??
  "tab_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ 100, "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "teacher_navigation_tab@rainbowpieui_npc_interact.top_tab": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ],
          // 오버라이드 가능한 변수
          "$tab_view_binding_name": "teacher_navigation_tab_toggle",
          // 오버라이드 가능한 변수
          "$tab_text": "gui.edit",
          // 오버라이드 가능한 변수
          "$toggle_group_forced_index": 11
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "student_navigation_tab@rainbowpieui_npc_interact.top_tab": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ],
          // 오버라이드 가능한 변수
          "$tab_view_binding_name": "student_navigation_tab_toggle",
          // 오버라이드 가능한 변수
          "$tab_text": "npcscreen.dialog",
          // 오버라이드 가능한 변수
          "$toggle_group_forced_index": 10
        }
      }
    ]
  },

  // ???/?? ??
  "dialog_button_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "button_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "tab_panel_student_view_visible@rainbowpieui_npc_interact.tab_panel": {}
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "npc_screen_contents": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_ingame_anim1": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title": "#name_text",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_extra_controls": "rainbowpieui_npc_interact.dialog_button_panel",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title_bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#name_text",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  }
                ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialog_content": "rainbowpieui_npc_interact.dialog_content",
                // 가로/세로 크기
                "size": [ 325, 200 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#teacher_view_visible",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#student_view_visible",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#advanced_visible",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#maximized_edit_visible"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(((not #advanced_visible) and (not #maximized_edit_visible)) and (#teacher_view_visible or #student_view_visible))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "dialog_panel_advanced@rainbowpie_ui_dialog.dialog_panel": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title": "#title_text",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title_bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#title_text",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  }
                ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialog_content": "npc_interact.advanced_scrolling_panel",
                // 오버라이드 가능한 변수
                "$close_button_to_button_id": "button.exit_advanced",
                // 가로/세로 크기
                "size": [ 325, 200 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#advanced_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "dialog_panel_maximized@rainbowpie_ui_dialog.dialog_panel": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title": "#title_text",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title_bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#title_text",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  }
                ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialog_content": "npc_interact.maximized_action_edit",
                // 오버라이드 가능한 변수
                "$close_button_to_button_id": "button.exit_maximized",
                // 가로/세로 크기
                "size": [ 325, 200 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#maximized_edit_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "exit_advanced@rainbowpieui_npc_interact.override_hotkey_input_panel": {
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.exit_advanced",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#advanced_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "exit_maximized@rainbowpieui_npc_interact.override_hotkey_input_panel": {
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.exit_maximized",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#maximized_edit_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "override_hotkey_input_panel": {
    // 마우스/커서 따라다니는 패널
    "type": "input_panel",
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 오버라이드 가능한 변수
    "$pressed_button_name": "rainbowpie.placeholder",
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_exit",
        // 어떤 동작을 실행할지
        "to_button_id": "$pressed_button_name",
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_cancel",
        // 어떤 동작을 실행할지
        "to_button_id": "$pressed_button_name",
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      }
    ]
  },

  // ???/?? ??
  "dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "teacher": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "basic@npc_interact.basic_stack_panel": {}
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "teacher_navigation_tab_toggle",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "student": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "message@npc_interact.student_message_section": {
                // 가로/세로 크기
                "size": [ "100%", "100% - 46px" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle"
              }
            },
            {
              // ???/?? ??
              "bottom_panel": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_dialog_background_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_dialog_background_alpha",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 가로/세로 크기
                "size": [ "100%", 46 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 12,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "buttons@npc_interact.student_buttons": {
                      // 가로/세로 크기
                      "size": [ "100% - 8px", "100%c" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center"
                    }
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "student_navigation_tab_toggle",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  }
}

online_safety_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: online_safety_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_online_safety",

  // ???/?? ??
  "ip_safety_dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "text_default@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "100% - 8px", "100% - 4px" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_dialog_content_color",
                      // 보여줄 글자
                      "text": "$description_text"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c + 1px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100% + 1px", 46 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "do_not_show_checkbox@online_safety.do_not_show_checkbox": {
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 3,
                            // 가로/세로 크기
                            "size": [ "100%", 23 ],
                            // 기준점에서 이동하는 거리
                            "offset": [ 0, -0.5 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_state_text": "onlinePlay.doNotShowAgain",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_state_text_on": "onlinePlay.doNotShowAgain",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_toggle_size": [ "100% - 1px", "100% - 1px" ],
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_toggle_anchor": "center",
                            // 오버라이드 가능한 변수
                            "$unchecked_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_off",
                            // 오버라이드 가능한 변수
                            "$checked_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_on",
                            // 오버라이드 가능한 변수
                            "$unchecked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_off_hover",
                            // 오버라이드 가능한 변수
                            "$checked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_on_hover",
                            // 오버라이드 가능한 변수
                            "$unchecked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_off_locked",
                            // 오버라이드 가능한 변수
                            "$unchecked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_off_locked",
                            // 오버라이드 가능한 변수
                            "$checked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_on_locked",
                            // 오버라이드 가능한 변수
                            "$checked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_on_locked"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "back_button@common_buttons.light_text_button": {
                            // 오버라이드 가능한 변수
                            "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "button.back",
                            // 오버라이드 가능한 변수
                            "$button_text": "onlinePlay.back",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_right",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_right",
                            // 가로/세로 크기
                            "size": [ "50%", 23 ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 5,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "#selected_pack_items_global",
                                // 목록 인덱스/현재 항목 정보 제공
                                "binding_type": "collection_details"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "proceed_button@common_buttons.light_text_button": {
                            // 오버라이드 가능한 변수
                            "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "button.proceed",
                            // 오버라이드 가능한 변수
                            "$button_text": "onlinePlay.proceed",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_left",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_left",
                            // 가로/세로 크기
                            "size": [ "50%", 23 ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 5
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "ip_safety_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
          // 가로/세로 크기
          "size": [ 204, 132 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 100,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialogheader_title": "$text_name",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_content": "rainbowpieui_online_safety.ip_safety_dialog_content",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_show_background": false,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialogheader_show_close": false
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background2@rainbowpie_popup_dialog.background_panel_design2": {}
      }
    ]
  },

  // ???/?? ??
  "online_safety_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_text@rainbowpie_ui_common.title_text": {
          // 기준점에서 이동하는 거리
          "offset": [ 0, "5%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "online_safety_ui@rainbowpieui_online_safety.online_safety_ui": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "online_safety_ui_blur@rainbowpieui_online_safety.online_safety_ui_blur": {}
      }
    ]
  },

  // ???/?? ??
  "exit_animation_push": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "out_cubic",
    // 걸리는 시간(초)
    "duration": 0,
    // 시작 값
    "from": 1.0,
    // 끝 값
    "to": 0.0,
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "exit_animation_pop": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "out_cubic",
    // 걸리는 시간(초)
    "duration": 0,
    // 시작 값
    "from": 1.0,
    // 끝 값
    "to": 0.0,
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "online_safety_ui_blur": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 11,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "titlebar_control_blur": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ "50% - 110px", "50% - 50px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "blur_layer_1@mintui_background.background_blur": {
                // 오버라이드 가능한 변수
                "$background_ingame": true,
                // 오버라이드 가능한 변수
                "$background_offset": [ "-100% + 220px", "-100% + 27px" ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ "50% - 110px", "50% + 23px" ],
                // 오버라이드 가능한 변수
                "$background_layer": 2
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "content_control_blur": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ "50% - 110px", "50% - 23px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "blur_layer_1@mintui_background.background_blur": {
                // 오버라이드 가능한 변수
                "$background_mask": false,
                // 오버라이드 가능한 변수
                "$background_ingame": true,
                // 오버라이드 가능한 변수
                "$background_offset": [ "-100% + 220px", "-100% + 83px" ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ "50% - 110px", "50% - 60px" ],
                // 오버라이드 가능한 변수
                "$background_layer": 1
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "online_safety_ui": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 220, 110 ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 5 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 12,
    // 오버라이드 가능한 변수
    "$text_name|default": "onlinePlay.notRated",
    // 오버라이드 가능한 변수
    "$description_text|default": "onlinePlay.message",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$is_editor_mode_enabled",
        // 오버라이드 가능한 변수
        "$text_name": "onlinePlay.editor.notRated",
        // 오버라이드 가능한 변수
        "$description_text": "onlinePlay.editor.message"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "titlebar_control@rainbowpie_ui_common.title_background": {
          // 가로/세로 크기
          "size": [ "100%", 27 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "title_text@rainbowpie_ui_common.title_label": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 가로/세로 크기
                "size": [ "default", "default" ],
                // ?? ?? ?
                "max_size": [ "100% - 8px", "100% - 4px" ],
                // 보여줄 글자
                "text": "$text_name"
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "content_control@rainbowpie_ui_common.text_background": {
          // 가로/세로 크기
          "size": [ "100%", 83 ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 27 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "progress_bar_text_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 46 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "progress_bar_text@rainbowpie_ui_common.title_label": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 4 ],
                      // 가로/세로 크기
                      "size": [ "default", "default" ],
                      // ?? ?? ?
                      "max_size": [ "100% - 18px", 40 ],
                      // 보여줄 글자
                      "text": "$description_text"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "inside_content": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 가로/세로 크기
                "size": [ "100% - 1px", "100%c" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, -0.5 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "online_safety_proceed_button@common_buttons.light_text_button": {
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.proceed",
                      // 오버라이드 가능한 변수
                      "$button_text": "onlinePlay.proceed",
                      // 가로/세로 크기
                      "size": [ "50%", 22 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_right",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_right"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "close_button@common_buttons.light_text_button": {
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.back",
                      // 오버라이드 가능한 변수
                      "$button_text": "onlinePlay.back",
                      // 가로/세로 크기
                      "size": [ "50%", 22 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_left"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

pack_settings_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: pack_settings_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_pack_settings",

  // ??? ??
  "scrolling_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "content_tiering_panel@pack_settings.content_tiering_panel": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "generated_form@rainbowpieui_server_form.generated_contents": {}
      }
    ]
  },

  // ???/?? ??
  "dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "pack_scroll_panel@pack_settings.pack_scroll_panel": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_scrollbar_enabled": true,
          // 오버라이드 가능한 변수
          "$scroll_size": [ 4, "100% - 4px" ],
          // 오버라이드 가능한 변수
          "$scrolling_pane_size": [ "100% - 4px", "100%" ],
          // 오버라이드 가능한 변수
          "$scrolling_pane_offset": [ 2, 0 ],
          // 오버라이드 가능한 변수
          "$scroll_bar_left_padding_size": [ 2, 0 ],
          // 오버라이드 가능한 변수
          "$scroll_bar_right_padding_size": [ 0, 0 ]
        }
      }
    ]
  },

  // ???/?? ??
  "main_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "dialog@rainbowpie_ui_dialog.dialog_panel": {
                // 가로/세로 크기
                "size": "$extra_large_screen_size",
                // ?? ?? ?
                "max_size": "$extra_large_max_screen_size",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title": "#pack_settings_title",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title_bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#pack_settings_title",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  }
                ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialog_content": "rainbowpieui_pack_settings.dialog_content"
              }
            }
          ]
        }
      }
    ]
  }
}

pause_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: pause_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_pause",

  // 다른 템플릿을 가져와서 확장(상속)
  "quit_button@pause.pause_button_template": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_quit",
    // 오버라이드 가능한 변수
    "$button_text": "pauseScreen.quit",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 오버라이드 가능한 변수
    "$focus_override_down": "icon_panel_main_focus",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "($is_secondary_client and not $is_editor_playtest_roundtrip)",
        // 오버라이드 가능한 변수
        "$button_text": "pauseScreen.secondaryClientLeave"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$is_editor_playtest_roundtrip",
        // 오버라이드 가능한 변수
        "$button_text": "pauseScreen.editor.quit"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$is_on_3p_server",
        // 오버라이드 가능한 변수
        "$button_text": "menu.disconnect"
      }
    ]
  },

  // ???/?? ??
  "music_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/start/music')",
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 8
  },

  // ???/?? ??
  "ui_mode_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/pause/ui_mode')",
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 8
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "vanilla_button@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text": "rainbowpie.ui.pause.vanilla_tip",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text_offset": [ -10, -10 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text_anchor": "top_right",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_56cd0456)",
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_pause.ui_mode_icon",

    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "rainbowpie.ui.pause.vanilla",

    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_pauseui_toggle",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 903,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 900,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "vanilla_pauseui",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "vanilla_pauseui",
        // 계산식/참조 값
        "source_property_name": "(not #toggle_state)",
        // 결과가 들어갈 속성
        "target_property_name": "#enabled",
        // 완전히 제거(공간도 없음)
        "ignored": "(not $rainbowpie_ui_flag_56cd0456)"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "pauseui_button@rainbowpieui_pause.vanilla_button": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text": "rainbowpie.ui.pause.pauseui_tip",
    // 오버라이드 가능한 변수
    "$button_text": "rainbowpie.ui.pause.pauseui",
    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 901,
    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "rainbowpie_pauseui",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "rainbowpie_pauseui",
        // 계산식/참조 값
        "source_property_name": "(not #toggle_state)",
        // 결과가 들어갈 속성
        "target_property_name": "#enabled",
        // 완전히 제거(공간도 없음)
        "ignored": "(not $rainbowpie_ui_flag_56cd0456)"
      }
    ]
  },

  // ???/?? ??
  "pause_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "screen_content": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 보이기/숨기기(공간 유지)
          "visible": true,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "tip_text_background": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_flag_pause_quit_doubleclick)",
                // 이미지 표시
                "type": "image",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 가로/세로 크기
                "size": [ "100%c + 12px", "100%c + 5px" ],
                // 사용할 이미지 경로
                "texture": "($rainbowpie_ui_path_home + '/r_black')",
                // ???
                "alpha": 0,
                // 애니메이션 목록
                "anims": ["@rainbowpieui_pause.quittip_background_out_in"],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 30,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "item_text_label@rainbowpie_ui_common.text_label_notheme": {
                      // ?? ?? ?
                      "max_size": [ 160, 24 ],
                      // ?? ??
                      "text_alignment": "center",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 31,
                      // 보여줄 글자
                      "text": "$tip_text",
                      // 오버라이드 가능한 변수
                      "$tip_text": "rainbowpie.ui.pause.quit.tiptext",
                      // ???
                      "alpha": 0,
                      // 애니메이션 목록
                      "anims": ["@rainbowpieui_pause.quittip_text_out_in"],
                      // 조건에 따라 변수 값을 바꾸기
                      "variables": [
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_on_3p_server",
                          // 오버라이드 가능한 변수
                          "$tip_text": "rainbowpie.ui.pause.quit.tiptext.disconnect"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "header@rainbowpie_ui_common.screen_header": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screenheader_ingame_anim1": true,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screenheader_title": "menu.returnToGame",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screenheader_content_panel": "rainbowpieui_pause.player_name_panel"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "screen_content@rainbowpie_ui_common.screen_content": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screen_ingame_anim1": true,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_this_screen": "pause.pause_screen_content",
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$touch",
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_this_screen": "rainbowpieui_pause.touch_pause_screen_content"
                  },
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$mouse",
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_this_screen": "rainbowpieui_pause.mouse_pause_screen_content"
                  },
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$game_pad",
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_this_screen": "rainbowpieui_pause.gamepad_pause_screen_content"
                  }
                ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screen_content": [
                  {
                    // ???/?? ??
                    "bottom_button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%c", "28px" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ -8, -17 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_right",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_right",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 30,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "button_stack_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 가로/세로 크기
                            "size": [ "100%c", "100%" ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "music_button@rainbowpie_ui_music_player.music_player_button_toggle_base": {
                                  // 오버라이드 가능한 변수
                                  "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
                                  // 오버라이드 가능한 변수
                                  "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
                                  // 오버라이드 가능한 변수
                                  "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
                                  // 오버라이드 가능한 변수
                                  "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
                                  // 오버라이드 가능한 변수
                                  "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
                                  // 오버라이드 가능한 변수
                                  "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
                                  // 오버라이드 가능한 변수
                                  "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
                                  // 오버라이드 가능한 변수
                                  "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
                                  // 오버라이드 가능한 변수
                                  "$button_content": "rainbowpieui_pause.music_icon",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$button_image_size": [ "100%", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$toggle_view_binding_name": "open_music_player",
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // ?? ??
                                      "source_control_name": "open_music_player",
                                      // 계산식/참조 값
                                      "source_property_name": "(not #toggle_state)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#enabled",
                                      // 완전히 제거(공간도 없음)
                                      "ignored": "(not $rainbowpie_ui_feature_musicplayer)"
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "music_button_padding": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ 4, 0 ],
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "(not $rainbowpie_ui_feature_musicplayer)"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "vanilla_button@rainbowpieui_pause.vanilla_button": {
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$button_image_size": [ "100%", "100%" ],
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "(not $rainbowpie_ui_flag_56cd0456)"
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "screen@$rainbowpie_localui_this_screen": {}
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "mask_layer_version_panel@mintui_background.background_mask": {
                // 완전히 제거(공간도 없음)
                "ignored": "$rainbowpie_ui_flag_8dcce82d",
                // 오버라이드 가능한 변수
                "$background_offset": [ 0, "100% - 12px" ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ 0, "-100% + 12px" ],
                // 오버라이드 가능한 변수
                "$background_layer": 2,
                // 오버라이드 가능한 변수
                "$background_anims": [
                  "@rainbowpieui_pause.version_background_back_animation_push1",
                  "@rainbowpieui_pause.version_background_back_animation_pop1",
                  "@rainbowpieui_pause.version_background_animation_push1",
                  "@rainbowpieui_pause.version_background_animation_pop1"
                ],
                // 오버라이드 가능한 변수
                "$background_children_anims": [
                  "@rainbowpieui_pause.version_background_back_animation_push2",
                  "@rainbowpieui_pause.version_background_back_animation_pop2",
                  "@rainbowpieui_pause.version_background_animation_push2",
                  "@rainbowpieui_pause.version_background_animation_pop2"
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "version_panel@rainbowpie_ui_common.text_background": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "100%", 12 ],
                // ????? ?? ?
                "animation_reset_name": "screen_animation_reset",
                // 애니메이션 목록
                "anims": [
                  "@rainbowpieui_pause.version_panel_back_animation_push",
                  "@rainbowpieui_pause.version_panel_back_animation_pop",
                  "@rainbowpieui_pause.version_panel_animation_push",
                  "@rainbowpieui_pause.version_panel_animation_pop"
                ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "rainbowpie_version_label@rainbowpie_ui_common.text_label": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "$rainbowpieui_ci",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_split": "",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_device_os": "NULL",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_device_osc": "NULL",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_control_mode": "NULL",
                      // 기준점에서 이동하는 거리
                      "offset": [ 2, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 가로/세로 크기
                      "size": [ "80% - 2px", 10 ],
                      // ?? ??
                      "text_alignment": "left",
                      // 보여줄 글자
                      "text": "($mintui_pack_name + ' ' + $rainbowpieui_branch_display_name + ' ' + $rainbowpieui_engine_version_name + '.' + $rainbowpieui_patch_version + '.' + $rainbowpieui_hotfix_version + $rainbowpie_localui_this_split + $rainbowpie_ui_flag_resourcepack_displayname)",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 조건에 따라 변수 값을 바꾸기
                      "variables": [
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "(not ($rainbowpie_ui_flag_resourcepack_displayname = ''))",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_split": " | "
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$game_pad",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_control_mode": "Controller"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$mouse",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_control_mode": "Keyboard & Mouse"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$touch",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_control_mode": "Touch"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$win10_edition",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Windows"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_win10_arm",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Windows ARM"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_windows_10_mobile",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Windows Mobile"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$xbox_one",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Xbox One"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_ios",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "iOS"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$osx_edition",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Mac OS"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_android",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Android"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$google_os",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_osc": "Google"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$apple_os",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_osc": "Apple"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$microsoft_os",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_osc": "Microsoft"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$nx_os",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_osc": "NX"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_ps4",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "PS4"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$console_edition",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Console"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "rainbowpie_ci_version_label@rainbowpie_ui_common.text_label": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpieui_ci)",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_split": "",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_device_os": "NULL",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_device_osc": "NULL",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_control_mode": "NULL",
                      // 기준점에서 이동하는 거리
                      "offset": [ 2, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 가로/세로 크기
                      "size": [ "80% - 2px", 10 ],
                      // ?? ??
                      "text_alignment": "left",
                      // 보여줄 글자
                      "text": "($mintui_pack_name + ' ' + $rainbowpieui_branch_display_name + ' ' + $rainbowpieui_engine_version_name + '.' + $rainbowpieui_patch_version + '.' + $rainbowpieui_hotfix_version + ' ' + $rainbowpieui_branch_name + '/' + $rainbowpieui_commit_id + $rainbowpie_localui_this_split + $rainbowpie_ui_flag_resourcepack_displayname)",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 조건에 따라 변수 값을 바꾸기
                      "variables": [
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "(not ($rainbowpie_ui_flag_resourcepack_displayname = ''))",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_split": " | "
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$game_pad",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_control_mode": "Controller"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$mouse",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_control_mode": "Keyboard & Mouse"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$touch",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_control_mode": "Touch"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$win10_edition",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Windows"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_win10_arm",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Windows ARM"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_windows_10_mobile",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Windows Mobile"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$xbox_one",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Xbox One"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_ios",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "iOS"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$osx_edition",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Mac OS"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_android",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Android"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$google_os",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_osc": "Google"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$apple_os",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_osc": "Apple"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$microsoft_os",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_osc": "Microsoft"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$nx_os",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_osc": "NX"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_ps4",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "PS4"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$console_edition",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Console"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "permission_label@rainbowpie_ui_common.text_label": {
                      // 완전히 제거(공간도 없음)
                      "ignored": true,
                      // 보이기/숨기기(공간 유지)
                      "visible": "(not $rainbowpie_ui_flag_111d8c96)",
                      // 기준점에서 이동하는 거리
                      "offset": [ -2, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",
                      // 가로/세로 크기
                      "size": [ "20% - 2px", 10 ],
                      // ?? ??
                      "text_alignment": "right",
                      // 보여줄 글자
                      "text": "#player_permission_text",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 이 컨트롤 안에서 쓰는 임시 저장소
                      "property_bag": {
                        // ???/??? ?
                        "#collection_name": "players_collection",
                        // ???/??? ?
                        "#collection_index": 0
                      },
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#player_permission_level_icon_texture",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "players_collection"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "('rainbowpie.ui.pause.permissions.' + ((#player_permission_level_icon_texture - 'textures/ui/permissions_') - '_hand' - '_star'- '_crown'- '_dots'))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#player_permission_text"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "pause_annoucement_label@rainbowpie_ui_common.text_label": {
                      // 기준점에서 이동하는 거리
                      "offset": [ -2, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",
                      // 가로/세로 크기
                      "size": [ "20% - 2px", 10 ],
                      // ?? ??
                      "text_alignment": "right",
                      // 보여줄 글자
                      "text": "pauseScreen.gameIsPaused",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#pause_annoucement_visible",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ],
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#is_music_player_ui_opened": false,
            // ???/??? ?
            "#is_vanilla_pause_ui_opened": false
          },
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "open_music_player",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#is_music_player_ui_opened",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_feature_musicplayer)"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "vanilla_pauseui",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#is_vanilla_pause_ui_opened",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_56cd0456)"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (#is_music_player_ui_opened or #is_vanilla_pause_ui_opened))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "vanilla_pauseui_content": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_56cd0456)",
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "screen_content@rainbowpie_ui_common.screen_content": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screen_ingame_anim1": true,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screen_content": [
                  {
                    // ???/?? ??
                    "bottom_button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%c", "28px" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ -8, -17 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_right",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_right",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 30,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "button_stack_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 가로/세로 크기
                            "size": [ "100%c", "100%" ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "music_button@rainbowpie_ui_music_player.music_player_button_toggle_base": {
                                  // 오버라이드 가능한 변수
                                  "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
                                  // 오버라이드 가능한 변수
                                  "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
                                  // 오버라이드 가능한 변수
                                  "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
                                  // 오버라이드 가능한 변수
                                  "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
                                  // 오버라이드 가능한 변수
                                  "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
                                  // 오버라이드 가능한 변수
                                  "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
                                  // 오버라이드 가능한 변수
                                  "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
                                  // 오버라이드 가능한 변수
                                  "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
                                  // 오버라이드 가능한 변수
                                  "$button_content": "rainbowpieui_pause.music_icon",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$button_image_size": [ "100%", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$toggle_view_binding_name": "open_music_player_vanilla",
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // ?? ??
                                      "source_control_name": "open_music_player_vanilla",
                                      // 계산식/참조 값
                                      "source_property_name": "(not #toggle_state)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#enabled",
                                      // 완전히 제거(공간도 없음)
                                      "ignored": "(not $rainbowpie_ui_feature_musicplayer)"
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "music_button_padding": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ 4, 0 ],
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "(not $rainbowpie_ui_feature_musicplayer)"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "pauseui_button@rainbowpieui_pause.pauseui_button": {
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$button_image_size": [ "100%", "100%" ],
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "(not $rainbowpie_ui_flag_56cd0456)"
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "rainbowpie_version": {
                      // 이미지 표시
                      "type": "image",
                      // 사용할 이미지 경로
                      "texture": "textures/ui/Black",
                      // 가로/세로 크기
                      "size": [ "100%c + 4px", "100%c + 2px" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_left",
                      // ???
                      "alpha": 0.6,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 30,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "label": {
                            // 글자 표시
                            "type": "label",
                            // ?? (R,G,B,A)
                            "color": "$main_header_text_color",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 2,
                            // 보여줄 글자
                            "text": "($mintui_pack_name + ' ' + $rainbowpieui_branch_display_name + ' ' + $rainbowpieui_engine_version_name + '.' + $rainbowpieui_patch_version + '.' + $rainbowpieui_hotfix_version)",
                            // 가로/세로 크기
                            "size": [ "default", 10 ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "pauseui@$screen_content": {}
                  }
                ]
              }
            }
          ],
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#is_music_player_ui_opened": false,
            // ???/??? ?
            "#is_vanilla_pause_ui_opened": false
          },
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "open_music_player_vanilla",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#is_music_player_ui_opened",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_feature_musicplayer)"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "vanilla_pauseui",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#is_vanilla_pause_ui_opened",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_56cd0456)"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#is_vanilla_pause_ui_opened and (not #is_music_player_ui_opened))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "subscreen_content": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_feature_musicplayer)",
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "music_player_screen@rainbowpie_ui_music_player.music_player_screen": {} }
          ],
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#is_music_player_ui_opened": false,
            // ???/??? ?
            "#is_music_player_ui_opened_on_vanilla": false
          },
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "open_music_player",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#is_music_player_ui_opened"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "open_music_player_vanilla",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#is_music_player_ui_opened_on_vanilla",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_282dd0a5)"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#is_music_player_ui_opened or #is_music_player_ui_opened_on_vanilla)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "version_panel_back_animation_push": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 12 ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "version_panel_back_animation_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 12 ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "version_panel_animation_push": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 12 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "version_panel_animation_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 12 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  //

  "version_background_back_animation_push1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 12px" ],
    // 끝 값
    "to": [ 0, "100% - 0px" ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "version_background_back_animation_push2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 12px" ],
    // 끝 값
    "to": [ 0, "-100% + 0px" ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "version_background_back_animation_pop1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 12px" ],
    // 끝 값
    "to": [ 0, "100% - 0px" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "version_background_back_animation_pop2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 12px" ],
    // 끝 값
    "to": [ 0, "-100% + 0px" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "version_background_animation_push1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 0px" ],
    // 끝 값
    "to": [ 0, "100% - 12px" ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "version_background_animation_push2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 0px" ],
    // 끝 값
    "to": [ 0, "-100% + 12px" ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "version_background_animation_pop1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 0px" ],
    // 끝 값
    "to": [ 0, "100% - 12px" ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "version_background_animation_pop2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 0px" ],
    // 끝 값
    "to": [ 0, "-100% + 12px" ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "quittip_background_out_in": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "out_expo",
    // 걸리는 시간(초)
    "duration": 0.5,
    // 시작 값
    "from": 0.0,
    // 끝 값
    "to": 0.6,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_pause.quittip_background_out_wait",
    // ?? ??
    "play_event": "rainbowpie.quit_button_tip"
  },

  // ???/?? ??
  "quittip_background_out_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 2,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_pause.quittip_background_out_anim"
  },

  // ???/?? ??
  "quittip_background_out_anim": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_expo",
    // 걸리는 시간(초)
    "duration": 0.5,
    // 시작 값
    "from": 0.6,
    // 끝 값
    "to": 0
  },

  // ???/?? ??
  "quittip_text_out_in": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "out_expo",
    // 걸리는 시간(초)
    "duration": 0.5,
    // 시작 값
    "from": 0,
    // 끝 값
    "to": 1,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_pause.quittip_text_out_wait",
    // ?? ??
    "play_event": "rainbowpie.quit_button_tip"
  },

  // ???/?? ??
  "quittip_text_out_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 2,
    // 다음 애니메이션으로 연결
    "next": "@rainbowpieui_pause.quittip_text_out_anim"
  },

  // ???/?? ??
  "quittip_text_out_anim": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_expo",
    // 걸리는 시간(초)
    "duration": 0.5,
    // 시작 값
    "from": 1,
    // 끝 값
    "to": 0
  },

  // ???/?? ??
  "list_title": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 15 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "list_title@rainbowpie_ui_common.title_background": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_list_title_text|default": "TITLE TEXT",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_list_title_bindings|default": [],
          // 가로/세로 크기
          "size": [ "100%", 14 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "text_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100% - 4px", 10 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title@rainbowpie_ui_common.title_label": {
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 보여줄 글자
                      "text": "$rainbowpie_localui_list_title_text",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": "$rainbowpie_localui_list_title_bindings"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "top_tab@common_tabs.tab_top": {
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpieui_navigation_tab",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 10,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 오버라이드 가능한 변수
    "$tab_content": "rainbowpieui_pause.top_tab_content"
  },

  // ???/?? ??
  "top_tab_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "tab_label@rainbowpie_ui_common.text_label_notheme": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 가로/세로 크기
          "size": [ "default", "default" ],
          // ?? ??
          "text_alignment": "center",
          // 보여줄 글자
          "text": "$tab_text",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // ???/?? ??
  "extra_button_icon": {
    // 이미지 표시
    "type": "image",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_path_mouse_icon": "($rainbowpie_ui_path_theme + '/icon/pause/mouse')",
    // 사용할 이미지 경로
    "texture": "($rainbowpie_localui_path_mouse_icon + '/placeholder')",
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3,
    // 가로/세로 크기
    "size": [ 20, 20 ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "achievements_icon_extra@extra_button_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_localui_path_mouse_icon + '/achievements')"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "invite_icon_extra@extra_button_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_localui_path_mouse_icon + '/invite')"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "friends_icon_extra@extra_button_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_localui_path_mouse_icon + '/friends')"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "skin_icon_extra@extra_button_icon": {
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "music_icon_extra@extra_button_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_localui_path_mouse_icon + '/music')"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "store_icon_extra@extra_button_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_localui_path_mouse_icon + '/marketplace')"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "take_screenshot_icon_extra@extra_button_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_localui_path_mouse_icon + '/screenshot')"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "feed_icon_extra@extra_button_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_localui_path_mouse_icon + '/feed')"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "feedback_icon_extra@extra_button_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_localui_path_mouse_icon + '/feedback')"
  },

  // ???/?? ??
  "gamepad_pause_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "center_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 가로/세로 크기
          "size": [ "100%c", 184 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "button_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 가로/세로 크기
                "size": [ 150, "100%c" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "return_to_game_button@pause.return_to_game_button": {
                      // 오버라이드 가능한 변수
                      "$button_focus_precedence": 3,
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 가로/세로 크기
                      "size": [ "100%", 23 ],
                      // 포커스 이동용 ID
                      "focus_identifier": "play_button",
                      // 위로 이동할 대상
                      "focus_change_up": "quit_button"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "settings_button@pause.settings_button": {
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 가로/세로 크기
                      "size": [ "100%", 23 ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "achievements_button@pause.pause_button_template": {
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.menu_achievements",
                      // 오버라이드 가능한 변수
                      "$button_text": "gui.achievements",
                      // 가로/세로 크기
                      "size": [ "100%", 23 ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "invite_players_button@pause.pause_button_template": {
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.menu_invite_players",
                      // 오버라이드 가능한 변수
                      "$button_text": "pauseScreen.invite",
                      // 가로/세로 크기
                      "size": [ "100%", 23 ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "friends_button@pause.pause_button_template": {
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.friends_drawer",
                      // 오버라이드 가능한 변수
                      "$button_text": "realmsInvitationScreen.friends",
                      // 가로/세로 크기
                      "size": [ "100%", 23 ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "store_button@pause.pause_button_template": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "$is_secondary_client",
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.menu_store",
                      // 오버라이드 가능한 변수
                      "$button_text": "$store_button_text",
                      // 가로/세로 크기
                      "size": [ "100%", 23 ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#store_button_visible",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#enabled",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "profile_button@pause.pause_button_template": {
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 가로/세로 크기
                      "size": [ "100%", 23 ],
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.to_profile_or_skins_screen",
                      // 오버라이드 가능한 변수
                      "$button_text": "profileScreen.header"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "quit_button@rainbowpieui_pause.quit_button": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_button_default_color": [ 0.85098, 0.301961, 0.301961 ],
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_button_hover_color": [ 0.85098, 0.301961, 0.301961 ],
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_button_pressed_color": [ 0.85098, 0.301961, 0.301961 ],
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_button_default_alpha": 0.5,
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_button_hover_alpha": 0.4,
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_button_pressed_alpha": 0.4,
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_button_text_default_color": [ 1.0, 1.0, 1.0 ],
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_button_text_hover_color": [ 1.0, 1.0, 1.0 ],
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_button_text_pressed_color": [ 1.0, 1.0, 1.0 ],
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 가로/세로 크기
                      "size": [ "100%", 23 ],
                      // 포커스 이동용 ID
                      "focus_identifier": "quit_button",
                      // 아래로 이동할 대상
                      "focus_change_down": "play_button"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "pause_playerlist_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 200, "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "player_list_scrolling_panel@common.scrolling_panel": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_scrollbar_enabled": true,
                      // 가로/세로 크기
                      "size": [ "100% - 1px", "100%" ],
                      // 오버라이드 가능한 변수
                      "$show_background": false,
                      // 오버라이드 가능한 변수
                      "$scroll_size": [ "5px", "100% - 4px" ],
                      // 오버라이드 가능한 변수
                      "$scroll_bar_left_padding_size": [ 1, 0 ],
                      // 오버라이드 가능한 변수
                      "$scroll_bar_right_padding_size": [ 1, 0 ],
                      // 오버라이드 가능한 변수
                      "$scrolling_content": "rainbowpieui_pause.player_list"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "mouse_pause_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "goto_profile_panel": {
          // 마우스/커서 따라다니는 패널
          "type": "input_panel",
          // 가로/세로 크기
          "size": [ "50% - 90px", 50 ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, -10 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "player_renderer": {
                // 특수 렌더러(그라디언트/플레이어 등)
                "type": "custom",
                // 커스텀 렌더러 종류
                "renderer": "live_player_renderer",
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#look_at_cursor": true
                },
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // ????? ?? ?
                "animation_reset_name": "screen_animation_reset",
                // 애니메이션 목록
                "anims": [
                  "@common.screen_exit_size_animation_push",
                  "@common.screen_exit_size_animation_pop",
                  "@common.screen_entrance_size_animation_push",
                  "@common.screen_entrance_size_animation_pop"
                ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            }
          ],
          // 입력 키/버튼과 동작 연결
          "button_mappings": [
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_select",
              // 어떤 동작을 실행할지
              "to_button_id": "button.to_profile_or_skins_screen",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_ok",
              // 어떤 동작을 실행할지
              "to_button_id": "button.to_profile_or_skins_screen",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "center_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ 180, "100%c" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 72,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "tab_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 180, 23 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "tab_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 가로/세로 크기
                      "size": [ "100% - 1px", "100% - 1px" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "pause_navigation_tab@rainbowpieui_pause.top_tab": {
                            // 가로/세로 크기
                            "size": [ "fill", "100%" ],
                            // 오버라이드 가능한 변수
                            "$tab_view_binding_name": "pause_navigation_tab_toggle",
                            // 오버라이드 가능한 변수
                            "$tab_text": "rainbowpie.ui.pause.tab.pause",
                            // 오버라이드 가능한 변수
                            "$toggle_group_forced_index": 10,
                            // 오버라이드 가능한 변수
                            "$toggle_default_state": true
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "playerlist_navigation_tab@rainbowpieui_pause.top_tab": {
                            // 가로/세로 크기
                            "size": [ "fill", "100%" ],
                            // 오버라이드 가능한 변수
                            "$tab_view_binding_name": "playerlist_navigation_tab_toggle",
                            // 오버라이드 가능한 변수
                            "$tab_text": "rainbowpie.ui.pause.tab.playerlist",
                            // 오버라이드 가능한 변수
                            "$toggle_group_forced_index": 11
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "scoreboard_navigation_tab@rainbowpieui_pause.top_tab": {
                            // 완전히 제거(공간도 없음)
                            "ignored": "(not $rainbowpie_ui_flag_pause_tab_scoreboard)",
                            // 가로/세로 크기
                            "size": [ "fill", "100%" ],
                            // 오버라이드 가능한 변수
                            "$tab_view_binding_name": "scoreboard_navigation_tab_toggle",
                            // 오버라이드 가능한 변수
                            "$tab_text": "rainbowpie.ui.pause.tab.scoreboard",
                            // 오버라이드 가능한 변수
                            "$toggle_group_forced_index": 13,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#list_has_display_objective",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#enabled"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "persona_navigation_tab@rainbowpieui_pause.top_tab": {
                            // 완전히 제거(공간도 없음)
                            "ignored": "$rainbowpie_ui_flag_pause_myinfo_disabled",
                            // 가로/세로 크기
                            "size": [ "fill", "100%" ],
                            // 오버라이드 가능한 변수
                            "$tab_view_binding_name": "persona_navigation_tab_toggle",
                            // 오버라이드 가능한 변수
                            "$tab_text": "rainbowpie.ui.pause.tab.persona",
                            // 오버라이드 가능한 변수
                            "$toggle_group_forced_index": 12
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "content_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$content_panel_size",
                // 오버라이드 가능한 변수
                "$content_panel_size": [ "100%", 190 ],
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$rainbowpie_ui_flag_111d8c96",
                    // 오버라이드 가능한 변수
                    "$content_panel_size": [ "100%", 214 ]
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "pause_button_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "title_background": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%", "40px" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "title_background@rainbowpie_ui_common.text_background": {
                                  // 가로/세로 크기
                                  "size": [ "100% - 1px", "100% - 1px" ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "title_text@rainbowpie_ui_common.title_text": {
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "center",
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "center",
                                        // 오버라이드 가능한 변수
                                        "$title_text_scale": "$rainbowpie_ui_theme_global_title_text_scale",
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "splash_text@common_art.splash_text": {
                                              // 완전히 제거(공간도 없음)
                                              "ignored": "(not $rainbowpie_ui_flag_pause_splash_text)"
                                            }
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "return_to_game_button@pause.return_to_game_button": {
                            // 오버라이드 가능한 변수
                            "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                            // 가로/세로 크기
                            "size": [ "100%", 20 ]
                          }
                        },
                        {
                          // ???/?? ??
                          "settings_and_how_to_play_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%", 20 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "settings_button@pause.settings_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_left",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_left",
                                  // 가로/세로 크기
                                  "size": [ "50%", 20 ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "how_to_play_button@pause.pause_button_template": {
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.menu_how_to_play",
                                  // 오버라이드 가능한 변수
                                  "$button_text": "menu.howToPlay",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_right",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_right",
                                  // 가로/세로 크기
                                  "size": [ "50%", 20 ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "achievements_and_invite_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%", 20 ]
                          }
                        },
                        {
                          // ???/?? ??
                          "feedback_and_store_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%", 20 ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "feedback_button@pause.pause_button_template": {
                            // 완전히 제거(공간도 없음)
                            "ignored": "(not $rainbowpie_ui_flag_b00b6372)",
                            // 오버라이드 가능한 변수
                            "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                            // 가로/세로 크기
                            "size": [ "100%", 20 ],
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "button.feedback_button_pressed",
                            // 오버라이드 가능한 변수
                            "$button_text": "options.group.feedback"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "profile_button@pause.pause_button_template": {
                            // 완전히 제거(공간도 없음)
                            "ignored": "$rainbowpie_ui_flag_b00b6372",
                            // 오버라이드 가능한 변수
                            "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                            // 가로/세로 크기
                            "size": [ "100%", 20 ],
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "button.to_profile_or_skins_screen",
                            // 오버라이드 가능한 변수
                            "$button_text": "profileScreen.header"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "quit_button@rainbowpieui_pause.quit_button": {
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_default_color": [ 0.85098, 0.301961, 0.301961 ],
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_hover_color": [ 0.85098, 0.301961, 0.301961 ],
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_pressed_color": [ 0.85098, 0.301961, 0.301961 ],
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_default_alpha": 0.5,
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_hover_alpha": 0.4,
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_pressed_alpha": 0.4,
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_text_default_color": [ 1.0, 1.0, 1.0 ],
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_text_hover_color": [ 1.0, 1.0, 1.0 ],
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_text_pressed_color": [ 1.0, 1.0, 1.0 ],
                            // 오버라이드 가능한 변수
                            "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                            // 가로/세로 크기
                            "size": [ "100%", 20 ],
                            // 입력 키/버튼과 동작 연결
                            "button_mappings": [
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_select",
                                // 어떤 동작을 실행할지
                                "to_button_id": "$pressed_button_name",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // 완전히 제거(공간도 없음)
                                "ignored": "$rainbowpie_ui_flag_pause_quit_doubleclick"
                              },
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_select",
                                // 어떤 동작을 실행할지
                                "to_button_id": "rainbowpie.quit_button_tip",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // 완전히 제거(공간도 없음)
                                "ignored": "(not $rainbowpie_ui_flag_pause_quit_doubleclick)"
                              },
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_select",
                                // 어떤 동작을 실행할지
                                "to_button_id": "$pressed_button_name",
                                // 입력 시점(pressed 등)
                                "mapping_type": "double_pressed",
                                // 완전히 제거(공간도 없음)
                                "ignored": "(not $rainbowpie_ui_flag_pause_quit_doubleclick)"
                              },
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_ok",
                                // 어떤 동작을 실행할지
                                "to_button_id": "$pressed_button_name",
                                // 입력 시점(pressed 등)
                                "mapping_type": "focused"
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "extra_button_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%", 30 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "achievements_button@common_buttons.light_content_button": {
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_desc_enabled": true,
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_desc_text": "menu.achievements",
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_hover_border_layer": 30,
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.menu_achievements",
                                  // 오버라이드 가능한 변수
                                  "$button_content": "rainbowpieui_pause.achievements_icon_extra",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_left",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_left",
                                  // 가로/세로 크기
                                  "size": [ 30, 30 ],
                                  // 기준점에서 이동하는 거리
                                  "offset": [ 0, 0 ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "invite_players_button@common_buttons.light_content_button": {
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_desc_enabled": true,
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_desc_text": "invite.title",
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_hover_border_layer": 30,
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.menu_invite_players",
                                  // 오버라이드 가능한 변수
                                  "$button_content": "rainbowpieui_pause.invite_icon_extra",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_left",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_left",
                                  // 가로/세로 크기
                                  "size": [ 30, 30 ],
                                  // 기준점에서 이동하는 거리
                                  "offset": [ 30, 0 ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#invite_button_visible",
                                      // 게임이 주는 전역 값 연결
                                      "binding_type": "global"
                                    },
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#invite_button_enabled"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "(#invite_button_visible and #invite_button_enabled)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#enabled"
                                    }
                                  ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "friends_button@common_buttons.light_content_button": {
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_desc_enabled": true,
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_desc_text": "realmsInvitationScreen.friends",
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_hover_border_layer": 30,
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.friends_drawer",
                                  // 오버라이드 가능한 변수
                                  "$button_content": "rainbowpieui_pause.friends_icon_extra",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_left",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_left",
                                  // 가로/세로 크기
                                  "size": [ 30, 30 ],
                                  // 기준점에서 이동하는 거리
                                  "offset": [ 60, 0 ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "store_button@common_buttons.light_content_button": {
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_desc_enabled": true,
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_desc_text": "$store_button_text",
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_hover_border_layer": 30,
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.menu_store",
                                  // 오버라이드 가능한 변수
                                  "$button_content": "rainbowpieui_pause.store_icon_extra",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_left",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_left",
                                  // 가로/세로 크기
                                  "size": [ 30, 30 ],
                                  // 기준점에서 이동하는 거리
                                  "offset": [ 90, 0 ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#store_button_visible",
                                      // 가져온 값을 다른 속성으로 연결
                                      "binding_name_override": "#enabled",
                                      // 게임이 주는 전역 값 연결
                                      "binding_type": "global"
                                    }
                                  ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "realms_stories_button@common_buttons.light_content_button": {
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_desc_enabled": true,
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_desc_text": "pauseScreen.realmsStories",
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_hover_border_layer": 30,
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.menu_feed",
                                  // 오버라이드 가능한 변수
                                  "$button_content": "rainbowpieui_pause.feed_icon_extra",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_left",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_left",
                                  // 가로/세로 크기
                                  "size": [ 30, 30 ],
                                  // 기준점에서 이동하는 거리
                                  "offset": [ 120, 0 ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "take_screenshot_button@common_buttons.light_content_button": {
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_desc_enabled": true,
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_desc_text": "key.screenshot",
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_hover_border_layer": 30,
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.screenshot",
                                  // 오버라이드 가능한 변수
                                  "$button_tts_header": "key.screenshot",
                                  // 오버라이드 가능한 변수
                                  "$button_content": "rainbowpieui_pause.take_screenshot_icon_extra",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_left",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_left",
                                  // 가로/세로 크기
                                  "size": [ 30, 30 ],
                                  // 기준점에서 이동하는 거리
                                  "offset": [ 150, 0 ],
                                  // 오버라이드 가능한 변수
                                  "$button_text": "key.screenshot",
                                  // ??? ??
                                  "sound_name": "random.screenshot",
                                  // ??? ?? ?
                                  "sound_volume": 1.0,
                                  // ??? ?? ?
                                  "sound_pitch": 1.0
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "profile_button_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%", 24 ],
                            // 완전히 제거(공간도 없음)
                            "ignored": "(not $rainbowpie_ui_flag_111d8c96)",
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "profile_button_stack_panel": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 가로/세로 크기
                                  "size": [ "100%", "100%" ],
                                  // 기준점에서 이동하는 거리
                                  "offset": [ 0, 0.5 ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "profile_button@common_buttons.light_content_button": {
                                        // 가로/세로 크기
                                        "size": [ "fill", "100%" ],
                                        // 오버라이드 가능한 변수
                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                        // 오버라이드 가능한 변수
                                        "$button_image_size": [ "100% - 1px", "100%" ],
                                        // 오버라이드 가능한 변수
                                        "$button_content_size": [ "100% - 1px", "100%" ],
                                        // 오버라이드 가능한 변수
                                        "$button_content": "rainbowpieui_pause.my_profile_horizontal_button_content",
                                        // 오버라이드 가능한 변수
                                        "$pressed_button_name": "button.menu_profile"
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "change_skin_button@common_buttons.light_content_button": {
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "(not $rainbowpie_ui_flag_b00b6372)",
                                        // 가로/세로 크기
                                        "size": [ "fill", "100%" ],
                                        // 오버라이드 가능한 변수
                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                        // 오버라이드 가능한 변수
                                        "$button_image_size": [ "100% - 1px", "100%" ],
                                        // 오버라이드 가능한 변수
                                        "$button_content_size": [ "100% - 1px", "100%" ],
                                        // 오버라이드 가능한 변수
                                        "$button_content": "rainbowpieui_pause.change_skin_button_content",
                                        // 오버라이드 가능한 변수
                                        "$pressed_button_name": "button.to_profile_or_skins_screen"
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "pause_navigation_tab_toggle",
                          // 계산식/참조 값
                          "source_property_name": "#toggle_state",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "pause_playerlist_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "player_list_scrolling_panel@common.scrolling_panel": {
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_scrollbar_enabled": true,
                            // 가로/세로 크기
                            "size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$show_background": false,
                            // 오버라이드 가능한 변수
                            "$scroll_size": [ "5px", "100% - 4px" ],
                            // 오버라이드 가능한 변수
                            "$scroll_bar_left_padding_size": [ 1, 0 ],
                            // 오버라이드 가능한 변수
                            "$scroll_bar_right_padding_size": [ 1, 0 ],
                            // 오버라이드 가능한 변수
                            "$scrolling_content": "rainbowpieui_pause.player_list"
                          }
                        }
                      ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "playerlist_navigation_tab_toggle",
                          // 계산식/참조 값
                          "source_property_name": "#toggle_state",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "pause_scoreboard_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_flag_pause_tab_scoreboard)",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "debug01@rainbowpie_ui_common.debug_draw": {
                            // 가로/세로 크기
                            "size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_debug_name": "pause_scoreboard_panel"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "player_list_scrolling_panel@common.scrolling_panel": {
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_scrollbar_enabled": true,
                            // 가로/세로 크기
                            "size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$show_background": false,
                            // 오버라이드 가능한 변수
                            "$scroll_size": [ "5px", "100% - 4px" ],
                            // 오버라이드 가능한 변수
                            "$scroll_bar_left_padding_size": [ 1, 0 ],
                            // 오버라이드 가능한 변수
                            "$scroll_bar_right_padding_size": [ 1, 0 ],
                            // 오버라이드 가능한 변수
                            "$scrolling_content": "rainbowpieui_pause.scoreboard_player_list"
                          }
                        }
                      ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "scoreboard_navigation_tab_toggle",
                          // 계산식/참조 값
                          "source_property_name": "#toggle_state",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  },
                  // 也许有一天我会完善这个东西,但是目前这个东西根本没有任何用。
                  // 我的本意是让服务器修改这个界面并且通过scoreboard在这个页面显示一些东西。
                  // 但是我根本没有开服务器。
                  {
                    // ???/?? ??
                    "pause_persona_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 완전히 제거(공간도 없음)
                      "ignored": "$rainbowpie_ui_flag_pause_myinfo_disabled",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "debug01@rainbowpie_ui_common.debug_draw": {
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_debug_name": "pause_persona_panel"
                          }
                        },
                        {
                          // ???/?? ??
                          "header_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%", 24 ],
                            // 기준점에서 이동하는 거리
                            "offset": [ 0, 0.5 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 24,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "profile_button@common_buttons.light_content_button": {
                                  // 가로/세로 크기
                                  "size": [ "100%", 24 ],
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                  // 오버라이드 가능한 변수
                                  "$button_image_size": [ "100% - 1px", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$button_content_size": [ "100% - 1px", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$button_content": "rainbowpieui_pause.my_profile_horizontal_button_content",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.menu_profile"
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "paper_doll_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%", "100% - 24.5px" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ 0, -40 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_middle",
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "paper_doll": {
                                  // 특수 렌더러(그라디언트/플레이어 등)
                                  "type": "custom",
                                  // 커스텀 렌더러 종류
                                  "renderer": "paper_doll_renderer",
                                  // ?? ??
                                  "camera_tilt_degrees": 0,
                                  // ?? ??
                                  "starting_rotation": 0,
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 2,
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "center",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "center",
                                  // ?? ??
                                  "rotation": "gesture_x",
                                  // 가로/세로 크기
                                  "size": [ "100%", "100%" ],
                                  // ?? ??
                                  "use_selected_skin": false,
                                  // ????? ?? ?
                                  "animation_reset_name": "screen_animation_reset",
                                  // 애니메이션 목록
                                  "anims": [
                                    "@common.screen_exit_size_animation_push",
                                    "@common.screen_exit_size_animation_pop",
                                    "@common.screen_entrance_size_animation_push",
                                    "@common.screen_entrance_size_animation_pop"
                                  ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#paper_doll_skin"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // ?? ??
                                      "source_control_name": "viewer_panel",
                                      // 계산식/참조 값
                                      "source_property_name": "#gesture_delta_source",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#gesture_delta_source"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // ?? ??
                                      "source_control_name": "viewer_panel",
                                      // 계산식/참조 값
                                      "source_property_name": "#gesture_mouse_delta_x",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#gesture_mouse_delta_x"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        { "profile_button@pause.dressing_room_button": {} }
                      ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "persona_navigation_tab_toggle",
                          // 계산식/참조 값
                          "source_property_name": "#toggle_state",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "scoreboard_player_list": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // ??? ?? ?
    "focus_container": true,
    // ??? ?? ?
    "use_last_focus": true,
    // ??? ?? ?
    "focus_navigation_mode_right": "contained",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "player_list_title@rainbowpieui_pause.list_title": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_list_title_text": "#player_list_title",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_list_title_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#player_list_title"
            }
          ]
        }
      },
      { "scored_players_grid_panel@scoreboard.players_scored_grid_list": {} },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "unscored_players_title@rainbowpieui_pause.list_title": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_list_title_text": "rainbowpie.ui.pause.title.unscored_players",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#list_scores_not_empty",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      { "unscored_players_grid_panel@scoreboard.players_unscored_grid_list": {} }
    ]
  },

  // ???/?? ??
  "player_count": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "40px", "10px" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "player_count_text_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "player_count_title@rainbowpie_ui_common.title_label": {
                // 보여줄 글자
                "text": "rainbowpie.ui.pause.title.player_total",
                // 가로/세로 크기
                "size": [ "default", 10 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            },
            {
              // ???/?? ??
              "padding_middle": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 1, 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "player_count_text@rainbowpie_ui_common.title_label": {
                // 보여줄 글자
                "text": "#player_count_str",
                // 가로/세로 크기
                "size": [ "default", 10 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 목록 인덱스/현재 항목 정보 제공
                    "binding_type": "collection_details",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#collection_index",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "players_collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#collection_index + 1)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#player_count"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "('\"' + #player_count + '\"')",
                    // 결과가 들어갈 속성
                    "target_property_name": "#player_count_str"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "player_list": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // ??? ?? ?
    "focus_container": true,
    // ??? ?? ?
    "use_last_focus": true,
    // ??? ?? ?
    "focus_navigation_mode_right": "contained",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "padding_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 0, 0.5 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "server_infomation@rainbowpie_ui_common.title_background": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_server_infomation_enabled)",
          // 가로/세로 크기
          "size": [ "100%", 36 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "horizontal_stack_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "server_logo": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "100%y", "100%" ],
                      // 사용할 이미지 경로
                      "texture": "($rainbowpie_ui_path_home + '/server_logo/' + $rainbowpie_ui_flag_server_infomation_logo_name)",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  },
                  {
                    // ???/?? ??
                    "infomation_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "fill", "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "infomation_stack_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 가로/세로 크기
                            "size": [ "100% - 4px", "100% - 4px" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "header_stack_panel": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 가로/세로 크기
                                  "size": [ "100%", "100%cm" ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "server_name@rainbowpie_ui_common.title_label": {
                                        // 가로/세로 크기
                                        "size": [ "default", "default" ],
                                        // 보여줄 글자
                                        "text": "$rainbowpie_ui_flag_server_infomation_server_name",
                                        // ?? ?? ??
                                        "font_scale_factor": 1.2,
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": 1
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "server_desc@rainbowpie_ui_common.title_label": {
                                        // 가로/세로 크기
                                        "size": [ "fill", "default" ],
                                        // 보여줄 글자
                                        "text": "$rainbowpie_ui_flag_server_infomation_description",
                                        // ?? ??
                                        "text_alignment": "right",
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": 1
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "server_website@rainbowpie_ui_common.editable_label": {
                                  // 가로/세로 크기
                                  "size": [ "100%c", "100%c" ],
                                  // ??? ?? ?
                                  "text_box_name": "server_website_text",
                                  // ??? ?? ?
                                  "text_control": "server_website_display_text",
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "server_website_display_text@rainbowpie_ui_common.title_label": {
                                        // 가로/세로 크기
                                        "size": [ "default", "default" ],
                                        // 보여줄 글자
                                        "text": "$rainbowpie_ui_flag_server_infomation_link_website",
                                        // ?? (R,G,B,A)
                                        "color":  [ 1.0, 1.0, 0.333 ],
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": 1
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "server_support@rainbowpie_ui_common.editable_label": {
                                  // 가로/세로 크기
                                  "size": [ "100%c", "100%c" ],
                                  // ??? ?? ?
                                  "text_box_name": "server_support_text",
                                  // ??? ?? ?
                                  "text_control": "server_support_display_text",
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "server_support_display_text@rainbowpie_ui_common.title_label": {
                                        // 가로/세로 크기
                                        "size": [ "default", "default" ],
                                        // 보여줄 글자
                                        "text": "$rainbowpie_ui_flag_server_infomation_link_support",
                                        // ?? (R,G,B,A)
                                        "color":  [ 1.0, 1.0, 0.333 ],
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": 1
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "list_title@rainbowpie_ui_common.title_background": {
          // 가로/세로 크기
          "size": [ "100%", 14 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "text_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100% - 4px", 10 ],
                // ?? ????
                "clips_children": true,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "players_list_title@rainbowpie_ui_common.title_label": {
                      // 가로/세로 크기
                      "size": [ "fill", "100%" ],
                      // 보여줄 글자
                      "text": "#players_list_title",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#players_list_title"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "player_count_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%c", "100%" ],
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_flag_317055aa)",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "player_grid": {
                            // 격자 컨테이너: 칸칸이 배치
                            "type": "grid",
                            // 가로/세로 크기
                            "size": [ "100%c", "100%c" ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_right",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_right",
                            // ??? ?? ?
                            "grid_item_template": "rainbowpieui_pause.player_count",
                            // ??? ?? ?
                            "grid_dimension_binding": "#players_grid_dimension",
                            // 목록 이름
                            "collection_name": "players_collection",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#players_grid_dimension"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 0, 0.5 ]
        }
      },
      { "players_grid_panel@pause.players_grid": {} },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "scoreboard_player_list@rainbowpieui_pause.scoreboard_player_list": {
          // 완전히 제거(공간도 없음)
          "ignored": "($rainbowpie_ui_flag_pause_tab_scoreboard)",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#list_has_display_objective",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "hide_paper_doll_anim": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "hide_paper_doll_anim_exit_push@rainbowpieui_pause.hide_paper_doll_anim": {
    // 시작 값
    "from": [ 0, 36 ],
    // 끝 값
    "to": [ "100%x", 36 ],
    // ?? ??
    "play_event": "screen.exit_push"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "hide_paper_doll_anim_exit_pop@rainbowpieui_pause.hide_paper_doll_anim": {
    // 시작 값
    "from": [ 0, 36 ],
    // 끝 값
    "to": [ "100%x", 36 ],
    // ?? ??
    "play_event": "screen.exit_pop"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "hide_paper_doll_anim_entrance_push@rainbowpieui_pause.hide_paper_doll_anim": {
    // 시작 값
    "from": [ "100%x", 36 ],
    // 끝 값
    "to": [ 0, 36 ],
    // ?? ??
    "play_event": "screen.entrance_push"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "hide_paper_doll_anim_entrance_pop@rainbowpieui_pause.hide_paper_doll_anim": {
    // 시작 값
    "from": [ "100%x", 36 ],
    // 끝 값
    "to": [ 0, 36 ],
    // ?? ??
    "play_event": "screen.entrance_pop"
  },

  // ???/?? ??
  "change_skin_button_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 24 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button_text@rainbowpie_ui_common.text_label_notheme": {
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 보여줄 글자
          "text": "options.skin.change",
          // ?? ??
          "text_alignment": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 1, 0 ],
          // 가로/세로 크기
          "size": [ "100% - 25px", 10 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3
        }
      },
      {
        // ???/?? ??
        "button_icon": {
          // 특수 렌더러(그라디언트/플레이어 등)
          "type": "custom",
          // 커스텀 렌더러 종류
          "renderer": "gradient_renderer",
          // 가로/세로 크기
          "size": [ "100%y", "100% - 2px" ],
          // 기준점에서 이동하는 거리
          "offset": [ -1, 0 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // ?? ?? ?
          "color1": [ 0.407843137254902, 0.5254901960784314, 0.8, 1.0 ],
          // ?? ?? ?
          "color2": [ 0.5098039215686275, 0.6549019607843137, 1.0, 1.0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8,
          // ?? ????
          "clips_children": true,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "paper_doll": {
                // 특수 렌더러(그라디언트/플레이어 등)
                "type": "custom",
                // 커스텀 렌더러 종류
                "renderer": "paper_doll_renderer",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 가로/세로 크기
                "size": [ 78, "100%x" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 36 ],
                // ?? ??
                "enable_scissor_test": true,
                // ????? ?? ?
                "animation_reset_name": "screen_animation_reset",
                // 애니메이션 목록
                "anims": [
                  "@rainbowpieui_pause.hide_paper_doll_anim_exit_push",
                  "@rainbowpieui_pause.hide_paper_doll_anim_exit_pop",
                  "@rainbowpieui_pause.hide_paper_doll_anim_entrance_push",
                  "@rainbowpieui_pause.hide_paper_doll_anim_entrance_pop"
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "my_profile_horizontal_button_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 24 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "gamerpic": {
          // 특수 렌더러(그라디언트/플레이어 등)
          "type": "custom",
          // 커스텀 렌더러 종류
          "renderer": "profile_image_renderer",
          // ???
          "alpha": 2.0,
          // 가로/세로 크기
          "size": [ 22, 22 ],
          // 기준점에서 이동하는 거리
          "offset": [ 1, 0 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#profile_image_options"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "alex_icon": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/icon_alex",
          // 가로/세로 크기
          "size": [ 22, 22 ],
          // 기준점에서 이동하는 거리
          "offset": [ 1, 0 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "player_gamertag@rainbowpie_ui_common.text_label_notheme": {
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 보여줄 글자
          "text": "#playername",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 기준점에서 이동하는 거리
          "offset": [ 25, 2 ],
          // 가로/세로 크기
          "size": [ "100% - 25px", 10 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#playername"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "permission_label@rainbowpie_ui_common.text_label": {
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 보여줄 글자
          "text": "#player_permission_text",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left",
          // 기준점에서 이동하는 거리
          "offset": [ 25, -2 ],
          // 가로/세로 크기
          "size": [ "100%  -25px", 10 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#collection_name": "players_collection",
            // ???/??? ?
            "#collection_index": 0
          },
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#player_permission_level_icon_texture",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "players_collection"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('rainbowpie.ui.pause.permissions.' + ((#player_permission_level_icon_texture - 'textures/ui/permissions_') - '_hand' - '_star'- '_crown'- '_dots'))",
              // 결과가 들어갈 속성
              "target_property_name": "#player_permission_text"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "return_to_game_button_content": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "return_to_game_icon": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 사용할 이미지 경로
          "texture": "textures/ui/store_play_button",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // 가로/세로 크기
          "size": [ 40, 40 ],
          // ?? (R,G,B,A)
          "color": "$text_color"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_label@rainbowpie_ui_common.text_label_notheme": {
          // 글자 표시
          "type": "label",
          // 가로/세로 크기
          "size": [ "100% - 4px", 12 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 보여줄 글자
          "text": "menu.returnToGame",
          // ?? (R,G,B,A)
          "color": "$text_color"
        }
      }
    ]
  },

  // ???/?? ??
  "howtoplay_button_content": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "howtoplay_icon": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 사용할 이미지 경로
          "texture": "textures/ui/how_to_play_button_default_light",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // 가로/세로 크기
          "size": [ 18, 18 ],
          // ?? (R,G,B,A)
          "color": "$text_color"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_label@rainbowpie_ui_common.text_label_notheme": {
          // 글자 표시
          "type": "label",
          // 가로/세로 크기
          "size": [ "100% - 4px", 12 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 보여줄 글자
          "text": "menu.howToPlay",
          // ?? (R,G,B,A)
          "color": "$text_color"
        }
      }
    ]
  },

  // ???/?? ??
  "settings_button_content": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "settings_icon": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 사용할 이미지 경로
          "texture": "textures/ui/settings_glyph_2x",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // 가로/세로 크기
          "size": [ 18, 18 ],
          // ?? (R,G,B,A)
          "color": "$text_color"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_label@rainbowpie_ui_common.text_label_notheme": {
          // 글자 표시
          "type": "label",
          // 가로/세로 크기
          "size": [ "100% - 4px", 12 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 보여줄 글자
          "text": "menu.settings",
          // ?? (R,G,B,A)
          "color": "$text_color"
        }
      }
    ]
  },

  // ???/?? ??
  "store_button_content": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "store_icon": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 사용할 이미지 경로
          "texture": "textures/ui/store_home_icon",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // 가로/세로 크기
          "size": [ 18, 18 ],
          // ?? (R,G,B,A)
          "color": "$text_color"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_label@rainbowpie_ui_common.text_label_notheme": {
          // 글자 표시
          "type": "label",
          // 가로/세로 크기
          "size": [ "100% - 4px", 12 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 보여줄 글자
          "text": "$store_button_text",
          // ?? (R,G,B,A)
          "color": "$text_color"
        }
      }
    ]
  },

  // ???/?? ??
  "achievements_icon": {
    // 이미지 표시
    "type": "image",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 사용할 이미지 경로
    "texture": "textures/ui/achievements",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3,
    // 가로/세로 크기
    "size": [ 18, 18 ]
  },

  // ???/?? ??
  "invite_icon": {
    // 이미지 표시
    "type": "image",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 사용할 이미지 경로
    "texture": "textures/ui/invite_base",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3,
    // 가로/세로 크기
    "size": [ 18, 18 ]
  },

  // ???/?? ??
  "feedback_icon": {
    // 이미지 표시
    "type": "image",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 사용할 이미지 경로
    "texture": "textures/ui/Feedback",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3,
    // 가로/세로 크기
    "size": [ 18, 18 ]
  },

  // ???/?? ??
  "friends_icon": {
    // 이미지 표시
    "type": "image",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 사용할 이미지 경로
    "texture": "textures/ui/FriendsIcon",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3,
    // 가로/세로 크기
    "size": [ 18, 18 ]
  },

  // ???/?? ??
  "touch_pause_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "player_list": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%", "100% - 19px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 19 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "button_panel_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "fill", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel_tile_panel_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "button_panel_tile_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "button_panel_tile": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 오버라이드 가능한 변수
                                  "$tile_panel_anchor": "bottom_left",
                                  // 오버라이드 가능한 변수
                                  "$tile_panel_offset": [ 0.5, -12.5 ],
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "$tile_panel_anchor",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "$tile_panel_anchor",
                                  // 가로/세로 크기
                                  "size": [ 180, 180 ],
                                  // 기준점에서 이동하는 거리
                                  "offset": "$tile_panel_offset",
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "return_to_game_button@common_buttons.light_content_button": {
                                        // 오버라이드 가능한 변수
                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                        // 오버라이드 가능한 변수
                                        "$pressed_button_name": "button.menu_continue",
                                        // 오버라이드 가능한 변수
                                        "$button_content": "rainbowpieui_pause.return_to_game_button_content",
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "top_left",
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "top_left",
                                        // 가로/세로 크기
                                        "size": [ 90, 90 ],
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 0, 0 ]
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "settings_button@common_buttons.light_content_button": {
                                        // 오버라이드 가능한 변수
                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                        // 오버라이드 가능한 변수
                                        "$pressed_button_name": "button.menu_settings",
                                        // 오버라이드 가능한 변수
                                        "$button_content": "rainbowpieui_pause.settings_button_content",
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "top_left",
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "top_left",
                                        // 가로/세로 크기
                                        "size": [ 60, 45 ],
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 0, 90 ]
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "how_to_play_button@common_buttons.light_content_button": {
                                        // 오버라이드 가능한 변수
                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                        // 오버라이드 가능한 변수
                                        "$pressed_button_name": "button.menu_how_to_play",
                                        // 오버라이드 가능한 변수
                                        "$button_content": "rainbowpieui_pause.howtoplay_button_content",
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "top_left",
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "top_left",
                                        // 가로/세로 크기
                                        "size": [ 60, 45 ],
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 60, 90 ]
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "achievements_button@common_buttons.light_content_button": {
                                        // 오버라이드 가능한 변수
                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                        // 오버라이드 가능한 변수
                                        "$pressed_button_name": "button.menu_achievements",
                                        // 오버라이드 가능한 변수
                                        "$button_content": "rainbowpieui_pause.achievements_icon",
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "top_left",
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "top_left",
                                        // 가로/세로 크기
                                        "size": [ 45, 45 ],
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 90, 45 ]
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "invite_players_button@common_buttons.light_content_button": {
                                        // 오버라이드 가능한 변수
                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                        // 오버라이드 가능한 변수
                                        "$pressed_button_name": "button.menu_invite_players",
                                        // 오버라이드 가능한 변수
                                        "$button_content": "rainbowpieui_pause.invite_icon",
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "top_left",
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "top_left",
                                        // 가로/세로 크기
                                        "size": [ 45, 45 ],
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 135, 45 ],
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 가져올 값 이름
                                            "binding_name": "#invite_button_visible",
                                            // 게임이 주는 전역 값 연결
                                            "binding_type": "global"
                                          },
                                          {
                                            // 가져올 값 이름
                                            "binding_name": "#invite_button_enabled"
                                          },
                                          {
                                            // 계산/조건 결과를 연결
                                            "binding_type": "view",
                                            // 계산식/참조 값
                                            "source_property_name": "(#invite_button_visible and #invite_button_enabled)",
                                            // 결과가 들어갈 속성
                                            "target_property_name": "#enabled"
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "take_screenshot_button@common_buttons.light_content_button": {
                                        // 오버라이드 가능한 변수
                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                        // 오버라이드 가능한 변수
                                        "$pressed_button_name": "button.screenshot",
                                        // 오버라이드 가능한 변수
                                        "$button_tts_header": "key.screenshot",
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "top_left",
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "top_left",
                                        // 가로/세로 크기
                                        "size": [ 45, 45 ],
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 90, 0 ],
                                        // 오버라이드 가능한 변수
                                        "$button_content": "pause.take_screenshot_icon",
                                        // ??? ??
                                        "sound_name": "random.screenshot",
                                        // ??? ?? ?
                                        "sound_volume": 1.0,
                                        // ??? ?? ?
                                        "sound_pitch": 1.0
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "friends_button@common_buttons.light_content_button": {
                                        // 오버라이드 가능한 변수
                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                        // 오버라이드 가능한 변수
                                        "$pressed_button_name": "button.friends_drawer",
                                        // 오버라이드 가능한 변수
                                        "$button_content": "rainbowpieui_pause.friends_icon",
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "top_left",
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "top_left",
                                        // 가로/세로 크기
                                        "size": [ 45, 45 ],
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 135, 0 ]
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "store_button@common_buttons.light_content_button": {
                                        // 오버라이드 가능한 변수
                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                        // 오버라이드 가능한 변수
                                        "$pressed_button_name": "button.menu_store",
                                        // 오버라이드 가능한 변수
                                        "$button_content": "rainbowpieui_pause.store_button_content",
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "top_left",
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "top_left",
                                        // 가로/세로 크기
                                        "size": [ 60, 45 ],
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 120, 90 ],
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 가져올 값 이름
                                            "binding_name": "#store_button_visible",
                                            // 가져온 값을 다른 속성으로 연결
                                            "binding_name_override": "#enabled",
                                            // 게임이 주는 전역 값 연결
                                            "binding_type": "global"
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "quit_button@rainbowpieui_pause.quit_button": {
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_default_color": [ 0.85098, 0.301961, 0.301961 ],
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_hover_color": [ 0.85098, 0.301961, 0.301961 ],
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_pressed_color": [ 0.85098, 0.301961, 0.301961 ],
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_default_alpha": 0.5,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_hover_alpha": 0.4,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_pressed_alpha": 0.4,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_text_default_color": [ 1.0, 1.0, 1.0 ],
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_text_hover_color": [ 1.0, 1.0, 1.0 ],
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_text_pressed_color": [ 1.0, 1.0, 1.0 ],
                                        // 오버라이드 가능한 변수
                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "top_left",
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "top_left",
                                        // 가로/세로 크기
                                        "size": [ 120, 45 ],
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 0, 135 ],
                                        // 입력 키/버튼과 동작 연결
                                        "button_mappings": [
                                          {
                                            // 어떤 입력을 받을지
                                            "from_button_id": "button.menu_select",
                                            // 어떤 동작을 실행할지
                                            "to_button_id": "$pressed_button_name",
                                            // 입력 시점(pressed 등)
                                            "mapping_type": "pressed",
                                            // 완전히 제거(공간도 없음)
                                            "ignored": "$rainbowpie_ui_flag_pause_quit_doubleclick"
                                          },
                                          {
                                            // 어떤 입력을 받을지
                                            "from_button_id": "button.menu_select",
                                            // 어떤 동작을 실행할지
                                            "to_button_id": "rainbowpie.quit_button_tip",
                                            // 입력 시점(pressed 등)
                                            "mapping_type": "pressed",
                                            // 완전히 제거(공간도 없음)
                                            "ignored": "(not $rainbowpie_ui_flag_pause_quit_doubleclick)"
                                          },
                                          {
                                            // 어떤 입력을 받을지
                                            "from_button_id": "button.menu_select",
                                            // 어떤 동작을 실행할지
                                            "to_button_id": "$pressed_button_name",
                                            // 입력 시점(pressed 등)
                                            "mapping_type": "double_pressed",
                                            // 완전히 제거(공간도 없음)
                                            "ignored": "(not $rainbowpie_ui_flag_pause_quit_doubleclick)"
                                          },
                                          {
                                            // 어떤 입력을 받을지
                                            "from_button_id": "button.menu_ok",
                                            // 어떤 동작을 실행할지
                                            "to_button_id": "$pressed_button_name",
                                            // 입력 시점(pressed 등)
                                            "mapping_type": "focused"
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "feedback_button@pause.pause_button_template": {
                                        // 오버라이드 가능한 변수
                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "top_left",
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "top_left",
                                        // 가로/세로 크기
                                        "size": [ 60, 45 ],
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 120, 135 ],
                                        // 오버라이드 가능한 변수
                                        "$pressed_button_name": "button.feedback_button_pressed",
                                        // 오버라이드 가능한 변수
                                        "$button_text": "options.group.feedback"
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "padding": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%", 11 ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "player_model": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 60, "100%" ],
                // ?? ????
                "clips_children": true,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "goto_profile_panel": {
                      // 마우스/커서 따라다니는 패널
                      "type": "input_panel",
                      // 가로/세로 크기
                      "size": [ 50, "50%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, "1%" ],
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "player_renderer": {
                            // 특수 렌더러(그라디언트/플레이어 등)
                            "type": "custom",
                            // 기준점에서 이동하는 거리
                            "offset": [ 2, -30 ],
                            // 커스텀 렌더러 종류
                            "renderer": "live_player_renderer",
                            // 이 컨트롤 안에서 쓰는 임시 저장소
                            "property_bag": {
                              // ???/??? ?
                              "#look_at_cursor": true
                            },
                            // ????? ?? ?
                            "animation_reset_name": "screen_animation_reset",
                            // 애니메이션 목록
                            "anims": [
                              "@common.screen_exit_size_animation_push",
                              "@common.screen_exit_size_animation_pop",
                              "@common.screen_entrance_size_animation_push",
                              "@common.screen_entrance_size_animation_pop"
                            ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1
                          }
                        }
                      ],
                      // 입력 키/버튼과 동작 연결
                      "button_mappings": [
                        {
                          // 어떤 입력을 받을지
                          "from_button_id": "button.menu_select",
                          // 어떤 동작을 실행할지
                          "to_button_id": "button.to_profile_or_skins_screen",
                          // 입력 시점(pressed 등)
                          "mapping_type": "pressed"
                        },
                        {
                          // 어떤 입력을 받을지
                          "from_button_id": "button.menu_ok",
                          // 어떤 동작을 실행할지
                          "to_button_id": "button.to_profile_or_skins_screen",
                          // 입력 시점(pressed 등)
                          "mapping_type": "pressed"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "pause_playerlist_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "fill", "100% - 2px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "player_list_scrolling_panel@common.scrolling_panel": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_scrollbar_enabled": true,
                      // 가로/세로 크기
                      "size": [ "100% - 2px", "100% - 3px" ],
                      // 오버라이드 가능한 변수
                      "$show_background": false,
                      // 오버라이드 가능한 변수
                      "$scroll_size": [ "5px", "100% - 4px" ],
                      // 오버라이드 가능한 변수
                      "$scroll_bar_left_padding_size": [ 1, 0 ],
                      // 오버라이드 가능한 변수
                      "$scroll_bar_right_padding_size": [ 1, 0 ],
                      // 오버라이드 가능한 변수
                      "$scrolling_content": "rainbowpieui_pause.player_list"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "player_name_panel@rainbowpie_ui_common.text_background": {
    // 가로/세로 크기
    "size": [ 100, "100%" ],
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "right_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "right_middle",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3,
    // 보이기/숨기기(공간 유지)
    "visible": "(not $rainbowpie_ui_flag_111d8c96)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "name_text@rainbowpie_ui_common.text_label": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4,
          // 가로/세로 크기
          "size": [ "100%", 10 ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0],
          // 보여줄 글자
          "text": "#text",
          // ?? ??
          "shadow": false,
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // ?? ??
          "text_alignment": "center",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#playername",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#text"
            }
          ]
        }
      }
    ]
  }
}

permissions_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: permissions_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_permissions",

  // ???/?? ??
  "permissions_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "header@rainbowpie_ui_common.screen_header": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_title": "permissions.title"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // ???/?? ??
              "content_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 가로/세로 크기
                "size": [ "100%", "100% - 20px" ],
                // 쌓는 방향(가로/세로)
                "orientation": "vertical",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "content_panel@permissions.content_panel": {} }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

persona_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: persona_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_persona",

  // ???/?? ??
  "background_blur_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_d28dfac0)",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "blur_panel_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ 34, 22 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "blur_layer_1@mintui_background.background_blur": {
                // 오버라이드 가능한 변수
                "$background_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$background_children_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$background_offset": [ "-50% - 16px", -24 ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ "50% - 18px", 2 ],
                // 오버라이드 가능한 변수
                "$background_layer": 0
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "mask_layer_1@mintui_background.background_mask": {
                // 오버라이드 가능한 변수
                "$background_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$background_children_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$background_offset": [ "-50% - 16px", -24 ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ "50% - 18px", 2 ],
                // 오버라이드 가능한 변수
                "$background_layer": 0
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "blur_panel_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ "50% + 19px", "100% - 65px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "blur_layer_1@mintui_background.background_blur": {
                // 오버라이드 가능한 변수
                "$background_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$background_children_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$background_offset": [ "-50% - 21px", "-100% + 63px" ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ 2, 2 ],
                // 오버라이드 가능한 변수
                "$background_layer": 0
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "mask_layer_1@mintui_background.background_mask": {
                // 오버라이드 가능한 변수
                "$background_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$background_children_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$background_offset": [ "-50% - 21px", "-100% + 63px" ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ 2, 2 ],
                // 오버라이드 가능한 변수
                "$background_layer": 0
              }
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "(not #preview_appearance_on)",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ]
  },

  // ???/?? ??
  "restricted_content_popup_dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "popup_dialog_message@rainbowpie_ui_common.text_label_notheme": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 가로/세로 크기
                      "size": [ "100% - 18px", "default" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 4 ],
                      // ?? ??
                      "text_alignment": "center",
                      // 보여줄 글자
                      "text": "dr.modal.restricted_content_text",
                      // ?? (R,G,B,A)
                      "color": "$dressing_room_right_side_default_text_color"
                    }
                  },
                  {
                    // ???/?? ??
                    "image": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "60%", "50%x" ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 사용할 이미지 경로
                      "texture": "textures/ui/warning_sad_steve",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c + 1px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100% + 1px", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "button_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 가로/세로 크기
                            "size": [ "100%", 23 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "Ok_button@persona.differences_popup_ok_button": {
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_button_default_alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                                  // 오버라이드 가능한 변수
                                  "$button_image_size": [ "100% - 1px", "100%" ],
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "background_panel_design2": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "full_screen_background@rainbowpie_ui_common.global_background": {
          // ?? (R,G,B,A)
          "color": [ 0.0, 0.0, 0.0 ],
          // ???
          "alpha": 0.3,
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "ingame_background": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 가로/세로 크기
          "size": [ 204, 132 ],
          // 완전히 제거(공간도 없음)
          "ignored": "$is_pregame",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "popup_dialog_background": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_dialog_background_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_dialog_background_alpha"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "blur_panel_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ "50% - 102px", 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "blur_panel_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // ?? ????
                "clips_children": true,
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "50% - 66px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "blur_layer_1@mintui_background.background_blur": {
                      // 오버라이드 가능한 변수
                      "$background_offset": [ "-100% + 204px", "-100% + 132px" ],
                      // 오버라이드 가능한 변수
                      "$background_children_offset": [ "50% - 102px", "50% - 66px" ],
                      // 오버라이드 가능한 변수
                      "$background_layer": 2
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

play_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: play_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_play",

  // ???/?? ??
  "play_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "header@rainbowpie_ui_common.screen_header": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_ingame_anim1": "($rainbowpie_ui_flag_8dcce82d and $rainbowpie_ui_flag_fbadd01f)",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_title": "menu.play",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_content_panel": "rainbowpieui_play.tab_navigation_panel"
        }
      },
      {
        // ???/?? ??
        "popup_dialog_factory": {
          // 리스트를 자동으로 생성하는 공장
          "type": "factory",
          // 팩토리 템플릿 매핑
          "control_ids": {
            // ?? ??
            "join_by_code": "@play.popup_dialog_join_by_code",
            // ?? ??
            "high_ping_warning": "@play.popup_dialog_high_ping"
          }
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_ingame_anim1": "($rainbowpie_ui_flag_8dcce82d and $rainbowpie_ui_flag_fbadd01f)",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // ???/?? ??
              "tab_content_panel": {
                // 마우스/커서 따라다니는 패널
                "type": "input_panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": "$rainbowpie_localui_this_size",
                // 기준점에서 이동하는 거리
                "offset": "$rainbowpie_localui_this_offset",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_this_size": [ "65%", "100% - 16px" ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_this_offset": [ 0, 2 ],
                // ?? ??
                "ttsSectionContainer": true,
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "($rainbowpie_ui_flag_play_bottom_panel and (not $game_pad))",
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_this_size": [ "65%", "100% - 38px" ],
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_this_offset": [ 0, -20 ]
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "worlds_tab_content@play.worlds_scroll_content": {
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "world_navigation_tab_toggle",
                          // 계산식/참조 값
                          "source_property_name": "#toggle_state",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "friends_tab_content@play.friends_scroll_content": {
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "friends_navigation_tab_toggle",
                          // 계산식/참조 값
                          "source_property_name": "#toggle_state",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "server_tab_content@play.server_scroll_content": {
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "server_navigation_tab_toggle",
                          // 계산식/참조 값
                          "source_property_name": "#toggle_state",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "blur_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 완전히 제거(공간도 없음)
          "ignored": "(not ($rainbowpie_ui_flag_play_bottom_panel and (not $game_pad)))",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ "17.5%", 0 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "blur_layer_1@mintui_background.background_blur": {
                // 오버라이드 가능한 변수
                "$background_ingame": true,
                // 오버라이드 가능한 변수
                "$background_offset": [ "-35%", "100% - 22px" ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ "17.5%", "-100% + 22px" ],
                // 오버라이드 가능한 변수
                "$background_layer": 6,
                // 오버라이드 가능한 변수
                "$background_anims": [
                  "@rainbowpieui_play.bottom_background_back_animation_push1",
                  "@rainbowpieui_play.bottom_background_back_animation_pop1",
                  "@rainbowpieui_play.bottom_background_animation_push1",
                  "@rainbowpieui_play.bottom_background_animation_pop1"
                ],
                // 오버라이드 가능한 변수
                "$background_children_anims": [
                  "@rainbowpieui_play.bottom_background_back_animation_push2",
                  "@rainbowpieui_play.bottom_background_back_animation_pop2",
                  "@rainbowpieui_play.bottom_background_animation_push2",
                  "@rainbowpieui_play.bottom_background_animation_pop2"
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "bottom_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 완전히 제거(공간도 없음)
          "ignored": "(not ($rainbowpie_ui_flag_play_bottom_panel and (not $game_pad)))",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 가로/세로 크기
          "size": [ "65%", 22 ],
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 애니메이션 목록
          "anims": [
            "@rainbowpieui_play.bottom_panel_back_animation_push",
            "@rainbowpieui_play.bottom_panel_back_animation_pop",
            "@rainbowpieui_play.bottom_panel_animation_push",
            "@rainbowpieui_play.bottom_panel_animation_pop"
          ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background@rainbowpie_ui_common.global_background": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            },
            {
              // ???/?? ??
              "worlds_tab_buttons": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100% - 1px", "100%" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "create_new_world_button@play.create_new_world_button": {
                      // 오버라이드 가능한 변수
                      "$button_image_size": [ "100% - 1px", "100% - 2px" ],
                      // 가로/세로 크기
                      "size": [ "fill", "100%" ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "quick_play_button@play.quick_play_button": {
                      // 오버라이드 가능한 변수
                      "$button_image_size": [ "100% - 1px", "100% - 2px" ],
                      // 가로/세로 크기
                      "size": [ "fill", "100%" ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "import_world_button@common_buttons.light_text_button": {
                      // 오버라이드 가능한 변수
                      "$button_image_size": [ "100% - 1px", "100% - 2px" ],
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 가로/세로 크기
                      "size": [ "fill", "100%" ],
                      // 조건에 따라 변수 값을 바꾸기
                      "variables": [
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "($local_world_upload)",
                          // 오버라이드 가능한 변수
                          "$pressed_button_name": "button.archived_world_upload"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "(not $local_world_upload)",
                          // 오버라이드 가능한 변수
                          "$pressed_button_name": "button.menu_import_level"
                        }
                      ],
                      // 오버라이드 가능한 변수
                      "$button_text": "accessibility.play.importWorld",
                      // 포커스 이동용 ID
                      "focus_identifier": "import_world_button",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "world_navigation_tab_toggle",
                    // 계산식/참조 값
                    "source_property_name": "#toggle_state",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "friends_tab_buttons": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100% - 1px", "100%" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "add_friend_button@play.add_friend_button": {
                      // 오버라이드 가능한 변수
                      "$button_image_size": [ "100% - 1px", "100% - 2px" ],
                      // 완전히 제거(공간도 없음)
                      "ignored": "((not $supports_add_friend) or $nx_os or $is_ps4)",
                      // 가로/세로 크기
                      "size": [ "fill", "100%" ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#add_friend_button_visible",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "#cross_platform_enabled",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#enabled"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "join_by_code_button@play.join_by_code_button": {
                      // 오버라이드 가능한 변수
                      "$button_image_size": [ "100% - 1px", "100% - 2px" ],
                      // 완전히 제거(공간도 없음)
                      "ignored": "$is_editor_mode_enabled",
                      // 가로/세로 크기
                      "size": [ "fill", "100%" ]
                    }
                  },
                  {
                    // ???/?? ??
                    "notification_button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "13%", "100%" ],
                      // 보이기/숨기기(공간 유지)
                      "visible": "#realms_notification_button_visible",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "notification_button@play.notification_button": {
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100% - 2px" ],
                            // 오버라이드 가능한 변수
                            "$button_content": "play.notification_content",
                            // 오버라이드 가능한 변수
                            "$button_tts_header": "realmsInvitationScreen.shareTitle",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_right",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_right"
                          }
                        }
                      ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#realms_notification_button_visible",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global"
                        }
                      ]
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "friends_navigation_tab_toggle",
                    // 계산식/참조 값
                    "source_property_name": "#toggle_state",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "server_tab_buttons": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100% - 1px", "100%" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "add_server_button@play.add_server_toggle_button": {
                      // 오버라이드 가능한 변수
                      "$button_image_size": [ "100% - 1px", "100% - 2px" ],
                      // 가로/세로 크기
                      "size": [ "fill", "100%" ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "join_third_party_server_button@common_buttons.light_text_button": {
                      // 오버라이드 가능한 변수
                      "$button_image_size": [ "100% - 1px", "100% - 2px" ],
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.connect_to_third_party_server",
                      // 오버라이드 가능한 변수
                      "$button_text": "networkWorld.join_server",
                      // 오버라이드 가능한 변수
                      "$focus_override_left": "left_panel",
                      // 가로/세로 크기
                      "size": [ "fill", "100%" ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#is_third_party_server_selected",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "join_server_button@common_buttons.light_text_button": {
                      // 오버라이드 가능한 변수
                      "$button_image_size": [ "100% - 1px", "100% - 2px" ],
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.menu_network_server_item",
                      // 오버라이드 가능한 변수
                      "$button_text": "networkWorld.join_server",
                      // 오버라이드 가능한 변수
                      "$focus_override_left": "left_panel",
                      // 가로/세로 크기
                      "size": [ "fill", "100%" ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#is_additional_server_selected",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "server_navigation_tab_toggle",
                    // 계산식/참조 값
                    "source_property_name": "#toggle_state",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "bottom_panel_back_animation_push": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 22 ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "bottom_panel_back_animation_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 22 ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "bottom_panel_animation_push": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 22 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "bottom_panel_animation_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 22 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  //

  "bottom_background_back_animation_push1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ "-35%", "100% - 22px" ],
    // 끝 값
    "to": [ "-35%", "100% - 0px" ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "bottom_background_back_animation_push2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ "17.5%", "-100% + 22px" ],
    // 끝 값
    "to": [ "17.5%", "-100% + 0px" ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "bottom_background_back_animation_pop1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ "-35%", "100% - 22px" ],
    // 끝 값
    "to": [ "-35%", "100% - 0px" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "bottom_background_back_animation_pop2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ "17.5%", "-100% + 22px" ],
    // 끝 값
    "to": [ "17.5%", "-100% + 0px" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "bottom_background_animation_push1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ "-35%", "100% - 0px" ],
    // 끝 값
    "to": [ "-35%", "100% - 22px" ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "bottom_background_animation_push2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ "17.5%", "-100% + 0px" ],
    // 끝 값
    "to": [ "17.5%", "-100% + 22px" ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "bottom_background_animation_pop1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ "-35%", "100% - 0px" ],
    // 끝 값
    "to": [ "-35%", "100% - 22px" ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "bottom_background_animation_pop2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ "17.5%", "-100% + 0px" ],
    // 끝 값
    "to": [ "17.5%", "-100% + 22px" ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "list_title": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 15 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "list_title@rainbowpie_ui_common.title_background": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_list_title_text|default": "TITLE TEXT",
          // 가로/세로 크기
          "size": [ "100%", 14 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "text_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100% - 4px", 10 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title@rainbowpie_ui_common.title_label": {
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 보여줄 글자
                      "text": "$rainbowpie_localui_list_title_text",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "tab_navigation_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "65%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "world_navigation_tab@rainbowpieui_play.world_navigation_tab": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "friends_navigation_tab@rainbowpieui_play.friends_navigation_tab": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "server_navigation_tab@rainbowpieui_play.server_navigation_tab": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      }
    ]
  },

  // ???/?? ??
  "common_navigation_tab_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "icon_section": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "icon@$tab_icon": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "text_section": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "text@rainbowpie_ui_common.text_label": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 보여줄 글자
                "text": "$tab_text_name",
                // 기준점에서 이동하는 거리
                "offset": [ -1, 0 ],
                // ?? (R,G,B,A)
                "color": "$text_color"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "count_section": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "count_background_image": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/numberBGFront",
                // 가로/세로 크기
                "size": [ "100%c + 3px", "100%c" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "count@rainbowpie_ui_common.text_label": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 보여줄 글자
                      "text": "$count_text_name",
                      // ?? (R,G,B,A)
                      "color": "$text_color",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "$count_text_name"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "friends_navigation_tab_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "left_icon_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "icon_section": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%c", "100%" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "$visibility_binding_override_name",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "icon@$tab_icon": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 기준점에서 이동하는 거리
                      "offset": "@play.anim_icon_wait_B"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "icon_section_2": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%c", "100%" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "$visibility_binding_override_name",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "icon@$tab_icon_2": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 3,
                      // 기준점에서 이동하는 거리
                      "offset": "@play.anim_icon_wait_A"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "icon_section_nobounce": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%c", "100%" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "$visibility_binding_override_name_nobounce",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "icon@$tab_icon_nobounce": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, -3 ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "icon_section_nobounce_2": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%c", "100%" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "$visibility_binding_override_name_nobounce",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "icon@$tab_icon_nobounce_2": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 3,
                      // 기준점에서 이동하는 거리
                      "offset": [ -5, 2 ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "icon_section_notification": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%c", "100%" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "$visibility_binding_override_name_notification",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "icon@$tab_icon_notification": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 3,
                      // 기준점에서 이동하는 거리
                      "offset": [ -0.5, -1 ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "text_section": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "text@rainbowpie_ui_common.text_label": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 보여줄 글자
                "text": "$tab_text_name",
                // 기준점에서 이동하는 거리
                "offset": [ -1, 0 ],
                // ?? (R,G,B,A)
                "color": "$text_color"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "count_section": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "count_background_image": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/numberBGFront",
                // 가로/세로 크기
                "size": [ "100%c + 3px", "100%c" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "count@rainbowpie_ui_common.text_label": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 보여줄 글자
                      "text": "$count_text_name",
                      // ?? (R,G,B,A)
                      "color": "$text_color",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "$count_text_name"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "top_tab@common_tabs.tab_top": {
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": 0,
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$tab_content": "rainbowpieui_play.common_navigation_tab_content",
    // 오버라이드 가능한 변수
    "$toggle_tts_enabled_binding_type": "global",
    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "navigation_tab",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": "$default_tab",
    // 오버라이드 가능한 변수
    "$toggle_tts_type_priority": 1001,
    // 오버라이드 가능한 변수
    "$toggle_tts_toggle_on_text": "",
    // 오버라이드 가능한 변수
    "$toggle_tts_toggle_off_text": "",
    // 오버라이드 가능한 변수
    "$toggle_tts_index_priority": 1002
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "world_navigation_tab@rainbowpieui_play.top_tab": {
    // 오버라이드 가능한 변수
    "$tab_view_binding_name": "world_navigation_tab_toggle",
    // 오버라이드 가능한 변수
    "$tab_icon": "play.worlds_icon",
    // 오버라이드 가능한 변수
    "$count_text_name": "#world_item_count",
    // 오버라이드 가능한 변수
    "$tab_text_name": "selectWorld.tab.worlds",
    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$is_editor_mode_enabled",
        // 오버라이드 가능한 변수
        "$tab_text_name": "playscreen.editor.worlds"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "friends_navigation_tab@rainbowpieui_play.top_tab": {
    // 오버라이드 가능한 변수
    "$tab_view_binding_name": "friends_navigation_tab_toggle",
    // 오버라이드 가능한 변수
    "$tab_icon": "play.friends_icon_2",
    // 오버라이드 가능한 변수
    "$tab_icon_2": "play.friends_icon_1",
    // 오버라이드 가능한 변수
    "$tab_icon_nobounce": "play.friends_icon_2",
    // 오버라이드 가능한 변수
    "$tab_icon_nobounce_2": "play.friends_icon_1",
    // 오버라이드 가능한 변수
    "$tab_icon_notification": "play.invite_icon",
    // 오버라이드 가능한 변수
    "$visibility_binding_override_name": "#friends_tab_show_bouncing",
    // 오버라이드 가능한 변수
    "$visibility_binding_override_name_nobounce": "#friends_tab_show_not_bouncing",
    // 오버라이드 가능한 변수
    "$visibility_binding_override_name_notification": "#friends_tab_show_invites",
    // 오버라이드 가능한 변수
    "$count_text_name": "#friend_world_item_count",
    // 오버라이드 가능한 변수
    "$tab_text_name": "selectWorld.tab.friends",
    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 1,
    // 오버라이드 가능한 변수
    "$tab_content": "rainbowpieui_play.friends_navigation_tab_content"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "server_navigation_tab@rainbowpieui_play.top_tab": {
    // 오버라이드 가능한 변수
    "$tab_view_binding_name": "server_navigation_tab_toggle",
    // 오버라이드 가능한 변수
    "$tab_icon": "play.server_tab_icon",
    // 오버라이드 가능한 변수
    "$count_text_name": "#server_world_item_count",
    // 오버라이드 가능한 변수
    "$tab_text_name": "selectWorld.tab.thirdParty",
    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 2
  },

  // ???/?? ??
  "cloud_upload_and_edit_world_stack_panel": {
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "padding_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ],
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#cloud_upload_enabled",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "cloud_upload_button@common_buttons.dark_content_button": {
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100% - 1px" ],
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
          // 가로/세로 크기
          "size": [ "100%y - 1px", "100%" ],
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.cloud_upload",
          // 오버라이드 가능한 변수
          "$button_content": "play.upload_icon",
          // 오버라이드 가능한 변수
          "$button_tts_header": "accessibility.play.uploadWorld",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "local_worlds"
            },
            {
              // 가져올 값 이름
              "binding_name": "#cloud_upload_enabled",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "local_world_edit_button@common_buttons.dark_content_button": {
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100% - 1px" ],
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
          // 가로/세로 크기
          "size": [ "100%y - 1px", "100%" ],
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.menu_local_world_item_edit",
          // 오버라이드 가능한 변수
          "$button_content": "play.edit_icon",
          // 오버라이드 가능한 변수
          "$button_tts_header": "accessibility.play.editWorld",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "local_worlds"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "common_button_template@common_buttons.light_content_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "create_new_world_button_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "create_new_world_button@rainbowpieui_play.create_new_world_button": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      },
      {
        // ???/?? ??
        "padding_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "create_new_world_button@play.create_new_world_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ]
  },

  // ???/?? ??
  "quick_play_button_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "50%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "quick_play_button@rainbowpieui_play.quick_play_button": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      },
      {
        // ???/?? ??
        "padding_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 1 ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "quick_play_button@play.quick_play_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 가로/세로 크기
    "size": [ "50%", "100%" ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "import_world_button@rainbowpieui_play.common_button_template": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "($local_world_upload)",
        // 오버라이드 가능한 변수
        "$pressed_button_name": "button.archived_world_upload"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "(not $local_world_upload)",
        // 오버라이드 가능한 변수
        "$pressed_button_name": "button.menu_import_level"
      }
    ],
    // 오버라이드 가능한 변수
    "$button_tts_header": "accessibility.play.importWorld",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 가로/세로 크기
    "size": [ "100%y", "100%" ],
    // 오버라이드 가능한 변수
    "$button_content": "play.import_icon",
    // 오버라이드 가능한 변수
    "$button_size_override": [ "100% + 1px", "100%" ],
    // 오버라이드 가능한 변수
    "$button_background_anchor": "top_right",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 오버라이드 가능한 변수
    "$create_new_row_focus_override_up|default": "close_button",
    // 오버라이드 가능한 변수
    "$focus_override_up": "$create_new_row_focus_override_up",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#worlds_tab_import_button_focus_down_override",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#focus_change_down"
      }
    ]
  }
}

popup_dialog_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: popup_dialog_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpie_popup_dialog",

  // ???/?? ??
  "modal_dialog_with_buttons": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 가로/세로 크기
    "size": [ 204, 132 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_popupdialog_button_panel": "common.empty_panel",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$three_buttons_visible",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_popupdialog_button_panel": "rainbowpie_popup_dialog.three_buttons_panel"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$destructive_three_buttons_visible",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_popupdialog_button_panel": "rainbowpie_popup_dialog.three_buttons_panel"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$two_buttons_visible",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_popupdialog_button_panel": "rainbowpie_popup_dialog.two_buttons_panel"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$destructive_two_buttons_visible",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_popupdialog_button_panel": "rainbowpie_popup_dialog.two_buttons_panel"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$single_button_visible",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_popupdialog_button_panel": "rainbowpie_popup_dialog.single_button_panel"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$no_buttons_visible",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_popupdialog_button_panel": "rainbowpie_popup_dialog.no_button_panel"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialogheader_title": "#text",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialogheader_title_bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "$visibility_source_control_name",
              // 계산식/참조 값
              "source_property_name": "#modal_title_text",
              // 결과가 들어갈 속성
              "target_property_name": "#text"
            }
          ],
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_content": "rainbowpie_popup_dialog.dialog_content",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_show_background": false,
          // 오버라이드 가능한 변수
          "$close_button_to_button_id": "popup_dialog.escape"
        }
      }
    ]
  },

  // ???/?? ??
  "dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "text@popup_dialog.modal_label_panel": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c + 1px" ],
                // 완전히 제거(공간도 없음)
                "ignored": "($rainbowpie_localui_popupdialog_button_panel = 'common.empty_panel')",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100% + 1px", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "button_panel@$rainbowpie_localui_popupdialog_button_panel": {
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_default_alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 가로/세로 크기
                            "size": [ "100%", 23 ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "background_panel_design2": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "full_screen_background@rainbowpie_ui_common.global_background": {
          // 가로/세로 크기
          "size": [ "200%", "200%" ],
          // ?? (R,G,B,A)
          "color": [ 0.0, 0.0, 0.0 ],
          // ???
          "alpha": 0.3,
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "ingame_background": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 가로/세로 크기
          "size": [ 204, 132 ],
          // 완전히 제거(공간도 없음)
          "ignored": "$is_pregame",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "popup_dialog_background": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_dialog_background_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_dialog_background_alpha",
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$rainbowpie_ui_flag_dialog_ingame_oqaque",
                    // 오버라이드 가능한 변수
                    "$rainbowpie_ui_theme_dialog_background_alpha": 1.0
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "blur_panel_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ "50% - 102px", 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "blur_panel_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // ?? ????
                "clips_children": true,
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "50% - 66px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "blur_layer_1@mintui_background.background_blur": {
                      // 오버라이드 가능한 변수
                      "$background_offset": [ "-100% + 204px", "-100% + 132px" ],
                      // 오버라이드 가능한 변수
                      "$background_children_offset": [ "50% - 102px", "50% - 66px" ],
                      // 오버라이드 가능한 변수
                      "$background_layer": 2
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "three_buttons_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "left@popup_dialog.modal_left_button": {
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "middle@popup_dialog.modal_middle_button": {
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "right@popup_dialog.modal_rightcancel_button": {
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      }
    ]
  },

  // ???/?? ??
  "two_buttons_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "left@popup_dialog.modal_left_button": {
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "right@popup_dialog.modal_rightcancel_button": {
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      }
    ]
  },

  // ???/?? ??
  "single_button_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "left@popup_dialog.modal_middle_button": { "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button", "size": [ "100%", "100%" ] } }
    ]
  },

  // ???/?? ??
  "no_button_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "left@popup_dialog.modal_middle_button": { "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button", "$button_text": "gui.ok", "size": [ "100%", "100%" ] } }
    ]
  },

  // ???/?? ??
  "background_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "blur_panel_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ "50% - 100px", 0 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "blur_panel_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // ?? ????
                "clips_children": true,
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "50% - 60px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "blur_layer_1@mintui_background.background_blur": {
                      // 오버라이드 가능한 변수
                      "$background_offset": [ "-100% + 200px", "-100% + 120px" ],
                      // 오버라이드 가능한 변수
                      "$background_children_offset": [ "50% - 100px", "50% - 60px" ],
                      // 오버라이드 가능한 변수
                      "$background_layer": 2
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "mask_layer_1@mintui_background.background_mask": {
                      // 오버라이드 가능한 변수
                      "$background_offset": [ "-100% + 200px", "-100% + 120px" ],
                      // 오버라이드 가능한 변수
                      "$background_children_offset": [ "50% - 100px", "50% - 60px" ],
                      // 오버라이드 가능한 변수
                      "$background_layer": 2
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

profile_card_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: profile_card_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_profile_card",

  // ???/?? ??
  "profile_card_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "dialog@rainbowpie_ui_dialog.dialog_panel": {
                // 가로/세로 크기
                "size": "$dialog_size",
                // ?? ?? ?
                "max_size": "$dialog_max_size",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title": "options.profile",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialog_content": "rainbowpieui_profile_card.dialog_content",
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "(not $hide_skin)",
                    // 오버라이드 가능한 변수
                    "$dialog_size": [ 300, 235 ],
                    // 오버라이드 가능한 변수
                    "$dialog_max_size": [ 300, "100% - 4px" ]
                  },
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$hide_skin",
                    // 오버라이드 가능한 변수
                    "$dialog_size": [ 230, 235 ],
                    // 오버라이드 가능한 변수
                    "$dialog_max_size": [ 230, "100% - 4px" ]
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dialog_content_with_skin@profile_card.dialog_content_with_skin": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle"
        }
      }
    ]
  }
}

profile_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: profile_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_profile",

  // ???/?? ??
  "delete_persona_dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "image@profile.alex_warning": {
                      // 기준점에서 이동하는 거리
                      "offset": [ 4, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_left",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 10
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "message@profile.delete_popup_dialog_message": {
                      // ??
                      "font_type": "$rainbowpie_ui_theme_global_font_name",
                      // ?? ?? ?
                      "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
                      // 기준점에서 이동하는 거리
                      "offset": [ 26, 4 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 12
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c + 1px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100% + 1px", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "button_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_default_alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 가로/세로 크기
                            "size": [ "100%", 23 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "right_button@profile.delete_persona_right_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "left_button@profile.delete_persona_left_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "background_panel_design2": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "full_screen_background@rainbowpie_ui_common.global_background": {
          // ?? (R,G,B,A)
          "color": [ 0.0, 0.0, 0.0 ],
          // ???
          "alpha": 0.3,
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "ingame_background": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 가로/세로 크기
          "size": [ 204, 132 ],
          // 완전히 제거(공간도 없음)
          "ignored": "$is_pregame",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "popup_dialog_background": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_dialog_background_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_dialog_background_alpha"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "blur_panel_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ "50% - 102px", 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "blur_panel_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // ?? ????
                "clips_children": true,
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "50% - 66px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "blur_layer_1@mintui_background.background_blur": {
                      // 오버라이드 가능한 변수
                      "$background_offset": [ "-100% + 204px", "-100% + 132px" ],
                      // 오버라이드 가능한 변수
                      "$background_children_offset": [ "50% - 102px", "50% - 66px" ],
                      // 오버라이드 가능한 변수
                      "$background_layer": 2
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

progress_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: progress_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_progress",

  // ???/?? ??
  "background_animation": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $animation_in or not $is_pregame)",
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 1.0,
    // 시작 값
    "from": "$animated_alpha_from",
    // 끝 값
    "to": "$animated_alpha_to",
    // ?? ??
    "play_event": "$animated_alpha_play_event"
  },

  // ???/?? ??
  "background_blur_animation": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_c448d476)",
    // 오버라이드 가능한 변수
    "$animation_in|default": true,
    // 오버라이드 가능한 변수
    "$animated_alpha_from|default": 0.0,
    // 오버라이드 가능한 변수
    "$animated_alpha_to|default": 1.0,
    // 오버라이드 가능한 변수
    "$animated_alpha_play_event|default": "screen.entrance_push",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "(not $animation_in)",
        // 오버라이드 가능한 변수
        "$animated_alpha_from": 1.0,
        // 오버라이드 가능한 변수
        "$animated_alpha_to": 0.0
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "background_blur_fullscreen": {
          // 이미지 표시
          "type": "image",
          // ?? ??
          "fill": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 사용할 이미지 경로
          "texture": "$rainbowpie_ui_theme_background_blur_texture",
          // ???
          "alpha": 1.0,
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 애니메이션 목록
          "anims": [
            "@rainbowpieui_progress.background_animation"
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "mobile_data_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "100%c + 6px", "100%c + 4px" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 기준점에서 이동하는 거리
    "offset": [ -3, 10 ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_home + '/r_white')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha",
    // 완전히 제거(공간도 없음)
    "ignored": "(not ($is_android or $is_ios))",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "mobile_data_stack_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%cm", 30 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "icon_android": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/mobile_data_icon_android",
                // 가로/세로 크기
                "size": [ 16, 9 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 8 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $is_android)"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "icon_ios@progress.mobile_data_ios_icon": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/mobile_data_icon_ios",
                // 가로/세로 크기
                "size": [ 12, 13 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 4 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $is_ios)"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "text@rainbowpie_ui_common.text_label": {
                // 보여줄 글자
                "text": "progressScreen.label.mobileData",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle"
              }
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#mobile_data_icon_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // ?? ???
        "binding_condition": "once"
      }
    ]
  },

  // ???/?? ??
  "simple_popup_dialog_base": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background_fullscreen@mintui_background.background_fullscreen": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "loading_progress_ui_blur@rainbowpieui_progress.loading_progress_ui_blur": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "resourcepacks_dialog_ui@rainbowpieui_progress.resourcepacks_dialog_ui": {}
      },
      { "mobile_data_icon@rainbowpieui_progress.mobile_data_icon": {} },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_text@rainbowpie_ui_common.title_text": {
          // 기준점에서 이동하는 거리
          "offset": [ 0, "5%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle"
        }
      }
    ]
  },

  // ???/?? ??
  "resourcepacks_dialog_ui": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 220, 110 ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 5 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 12,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "titlebar_control@rainbowpie_ui_common.title_background": {
          // 가로/세로 크기
          "size": [ "100%", 27 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "title_text@rainbowpie_ui_common.title_label": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 가로/세로 크기
                "size": [ "default", "default" ],
                // ?? ?? ?
                "max_size": [ "100% - 8px", "100% - 4px" ],
                // 보여줄 글자
                "text": "$title_text"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "close_button@rainbowpie_ui_common.close_button": {
                // 오버라이드 가능한 변수
                "$close_button_to_button_id": "button.leave",
                // 기준점에서 이동하는 거리
                "offset": [ -2, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "right_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "right_middle"
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "content_control@rainbowpie_ui_common.text_background": {
          // 가로/세로 크기
          "size": [ "100%", 83 ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 27 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "progress_bar_text_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 46 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "progress_bar_text@rainbowpie_ui_common.title_label": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 4 ],
                      // 가로/세로 크기
                      "size": [ "default", "default" ],
                      // ?? ?? ?
                      "max_size": [ "100% - 44px", 40 ],
                      // 보여줄 글자
                      "text": "$description_text"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "inside_content": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 가로/세로 크기
                "size": [ "100% - 1px", "100%c" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, -0.5 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "top_button@common_buttons.light_text_button": {
                      // 보이기/숨기기(공간 유지)
                      "visible": "$use_top_button",
                      // ??/???
                      "enabled": "$use_top_button",
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "$top_button_press",
                      // 오버라이드 가능한 변수
                      "$button_binding_condition": "once",
                      // 오버라이드 가능한 변수
                      "$button_text_binding_type": "global",
                      // 오버라이드 가능한 변수
                      "$button_text": "$top_button_text",
                      // 가로/세로 크기
                      "size": [ "100%", 22 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, -22 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "middle_button@common_buttons.light_text_button": {
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "$middle_button_press",
                      // 오버라이드 가능한 변수
                      "$button_binding_condition": "once",
                      // 오버라이드 가능한 변수
                      "$button_text_binding_type": "global",
                      // 오버라이드 가능한 변수
                      "$button_text": "$middle_button_text",
                      // 가로/세로 크기
                      "size": [ "50%", 22 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_left"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "bottom_button@common_buttons.light_text_button": {
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "$bottom_button_press",
                      // 오버라이드 가능한 변수
                      "$button_text": "$bottom_button_text",
                      // 가로/세로 크기
                      "size": [ "50%", 22 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_right",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_right"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "modal_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@rainbowpie_ui_common.global_background": {
          // 가로/세로 크기
          "size": [ "500%", "500%" ]
        }
      },
      {
        // ???/?? ??
        "modal_progress_panel_with_cancel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$modal_screen_size",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "content": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 가로/세로 크기
                "size": [ "100%-12px", "100%-60px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 6, 20 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title_panel@progress.title_panel": {}
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "progress_loading_bars@rainbowpie_ui_common.progress_loading_bars": {
                      // 가로/세로 크기
                      "size": [ 65, 3 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 24 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#bar_animation_visible",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "modal_button_panel@progress.modal_button_panel": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 가로/세로 크기
                "size": [ "100%", 40 ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "world_loading_progress_screen": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background_blur_animation@rainbowpieui_progress.background_blur_animation": {}
      },
      { "mobile_data_icon@rainbowpieui_progress.mobile_data_icon": {} },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_text@rainbowpie_ui_common.title_text": {
          // 기준점에서 이동하는 거리
          "offset": [ 0, "5%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "world_loading_progress_ui@rainbowpieui_progress.world_loading_progress_ui": {
          // 오버라이드 가능한 변수
          "$modal_button_panel_type": "progress.modal_button_panel"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "loading_progress_ui_blur@rainbowpieui_progress.loading_progress_ui_blur": {}
      },
      { "popup_dialog_factory@progress.popup_dialog_factory": {} }
    ]
  },

  // ???/?? ??
  "world_saving_progress_screen": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background_blur_animation@rainbowpieui_progress.background_blur_animation": {
          // 오버라이드 가능한 변수
          "$animation_in": false
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_text@rainbowpie_ui_common.title_text": {
          // 기준점에서 이동하는 거리
          "offset": [ 0, "5%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "world_loading_progress_ui@rainbowpieui_progress.world_loading_progress_ui": {
          // 오버라이드 가능한 변수
          "$modal_button_panel_type": "progress.modal_button_panel_with_retry"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "loading_progress_ui_blur@rainbowpieui_progress.loading_progress_ui_blur": {}
      },
      { "popup_dialog_factory@progress.popup_dialog_factory": {} }
    ]
  },

  // ???/?? ??
  "loading_progress_ui_blur": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 11,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "titlebar_control_blur": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ "50% - 110px", "50% - 50px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "blur_layer_1@mintui_background.background_blur": {
                // 오버라이드 가능한 변수
                "$background_ingame": true,
                // 오버라이드 가능한 변수
                "$background_offset": [ "-100% + 220px", "-100% + 27px" ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ "50% - 110px", "50% + 23px" ],
                // 오버라이드 가능한 변수
                "$background_layer": 2
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "content_control_blur": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ "50% - 110px", "50% - 23px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "blur_layer_1@mintui_background.background_blur": {
                // 오버라이드 가능한 변수
                "$background_mask": false,
                // 오버라이드 가능한 변수
                "$background_ingame": true,
                // 오버라이드 가능한 변수
                "$background_offset": [ "-100% + 220px", "-100% + 83px" ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ "50% - 110px", "50% - 60px" ],
                // 오버라이드 가능한 변수
                "$background_layer": 1
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "world_loading_progress_ui": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 220, 110 ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 5 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 12,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "titlebar_control@rainbowpie_ui_common.title_background": {
          // 가로/세로 크기
          "size": [ "100%", 27 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "title_text@rainbowpie_ui_common.title_label": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 가로/세로 크기
                "size": [ "default", "default" ],
                // ?? ?? ?
                "max_size": [ "100% - 8px", "100% - 4px" ],
                // 보여줄 글자
                "text": "#title_text",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#title_text"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "content_control@rainbowpie_ui_common.text_background": {
          // 가로/세로 크기
          "size": [ "100%", 83 ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 27 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "progress_bar_text_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 46 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "progress_bar_text@rainbowpie_ui_common.title_label": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 4 ],
                      // 가로/세로 크기
                      "size": [ "default", "default" ],
                      // ?? ?? ?
                      "max_size": [ "100% - 18px", 40 ],
                      // ?? ??
                      "localize": false,
                      // 보여줄 글자
                      "text": "#progress_text",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#progress_text"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "inside_content": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 가로/세로 크기
                "size": [ "100%-12px", "100%c" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "loading_bar_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%", "100%c" ],
                      // 오버라이드 가능한 변수
                      "$float_min_percentage": 0.9,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "fancy_progress_loading_bars@rainbowpie_ui_common.fancy_progress_loading_bars": {
                            // 가로/세로 크기
                            "size": [ "90%", 3 ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 15,
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_loading_bars_bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#loading_bar_percentage",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#clip_ratio"
                              }
                            ],
                            // 이 컨트롤 안에서 쓰는 임시 저장소
                            "property_bag": {
                              // ???/??? ?
                              "#loading_bar_visible": true
                            },
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#loading_bar_visible",
                                // 완전히 제거(공간도 없음)
                                "ignored": "(not $is_pregame)"
                              },
                              {
                                // 가져올 값 이름
                                "binding_name": "#loading_bar_percentage"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(#loading_bar_visible and (not (#loading_bar_percentage > $float_min_percentage)))",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "fancy_progress_loading_bars_wait@rainbowpie_ui_common.progress_loading_bars": {
                            // 가로/세로 크기
                            "size": [ "90%", 3 ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 15,
                            // 이 컨트롤 안에서 쓰는 임시 저장소
                            "property_bag": {
                              // ???/??? ?
                              "#loading_bar_visible": true
                            },
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#loading_bar_visible",
                                // 완전히 제거(공간도 없음)
                                "ignored": "(not $is_pregame)"
                              },
                              {
                                // 가져올 값 이름
                                "binding_name": "#loading_bar_percentage"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(#loading_bar_visible and (#loading_bar_percentage > $float_min_percentage))",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "progress_loading_bars@rainbowpie_ui_common.progress_loading_bars": {
                            // 가로/세로 크기
                            "size": [ 65, 3 ],
                            // 기준점에서 이동하는 거리
                            "offset": [ 0, 0 ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 2,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#bar_animation_visible",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "vertical_padding": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 0, 5 ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "modal_button_panel@$modal_button_panel_type": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100%", "100%c" ]
                    }
                  },
                  {
                    // ???/?? ??
                    "vertical_padding_2": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 0, 14 ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

realms_pending_invitations_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: realms_pending_invitations_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_realms_pending_invitations",

  // ???/?? ??
  "dark_banner": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "dark_banner_hover@rainbowpieui_realms_pending_invitations.dark_banner": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_button_background_hover_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_button_background_hover_alpha"
  },

  // ???/?? ??
  "realms_invitation_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "dialog@rainbowpie_ui_dialog.dialog_panel": {
                // 가로/세로 크기
                "size": "$narrow_screen_size",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title": "realmsPendingInvitationsScreen.pendingInvitations",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialog_content": "realms_pending_invitations.content_panel"
              }
            }
          ]
        }
      }
    ]
  }
}

realms_plus_ended_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: realms_plus_ended_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_realms_plus_ended",

  // ???/?? ??
  "dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "main_content@realms_plus_ended.main_content_panel": {}
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c + 1px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100% + 1px", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "button_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_default_alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 가로/세로 크기
                            "size": [ "100%", 23 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "more_info_button@common_buttons.light_text_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$button_text": "realmsPlus.popup.top_button_text",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.more_info"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "renew_subscription_button@common_buttons.light_text_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$button_text": "realmsPlus.popup.bottom_button_text",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.renew"
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "subscription_ended_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 18,
          // 가로/세로 크기
          "size": [ 260, 154 ],
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialogheader_title": "realmsPlus.popup.title",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_content": "rainbowpieui_realms_plus_ended.dialog_content",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_show_background": false
        }
      },
      {
        // ???/?? ??
        "blur_panel_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ "50% - 130px", 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "blur_panel_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // ?? ????
                "clips_children": true,
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "50% - 77px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "blur_layer_1@mintui_background.background_blur": {
                      // 오버라이드 가능한 변수
                      "$background_offset": [ "-100% + 260px", "-100% + 154px" ],
                      // 오버라이드 가능한 변수
                      "$background_children_offset": [ "50% - 130px", "50% - 77px" ],
                      // 오버라이드 가능한 변수
                      "$background_layer": 2
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

realmsplus_upgrade_notice_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: realmsplus_upgrade_notice_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_realmsplus_upgrade_notice_screen",

  // ???/?? ??
  "dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "main_content@realmsplus_upgrade_notice_screen.content": {}
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c + 1px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100% + 1px", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "button_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_default_alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 가로/세로 크기
                            "size": [ "100%", 23 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "left@common_buttons.light_text_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.continue_button",
                                  // 오버라이드 가능한 변수
                                  "$button_text": "realmsPlusUpgradeNotice.continue"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "right@common_buttons.light_text_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.viewpacks",
                                  // 오버라이드 가능한 변수
                                  "$button_text": "realmsPlusUpgradeNotice.viewpacks"
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "main_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 18,
          // 가로/세로 크기
          "size": [ 260, 204 ],
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialogheader_title": "realmsPlusUpgradeNotice.title",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_content": "rainbowpieui_realmsplus_upgrade_notice_screen.dialog_content",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_show_background": false
        }
      },
      {
        // ???/?? ??
        "blur_panel_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ "50% - 130px", 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "blur_panel_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // ?? ????
                "clips_children": true,
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "50% - 102px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "blur_layer_1@mintui_background.background_blur": {
                      // 오버라이드 가능한 변수
                      "$background_offset": [ "-100% + 260px", "-100% + 204px" ],
                      // 오버라이드 가능한 변수
                      "$background_children_offset": [ "50% - 130px", "50% - 102px" ],
                      // 오버라이드 가능한 변수
                      "$background_layer": 2
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

redstone_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: redstone_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_redstone",

  // ???/?? ??
  "output_slot_hover_info": {
    // 클릭 가능한 버튼
    "type": "button",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // ?? ??
    "hover_control": "hover",
    // 오버라이드 가능한 변수
    "$stack_count_required": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "hover": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hover_text@common.hover_text": {
                // 완전히 제거(공간도 없음)
                "ignored": "($rainbowpie_ui_flag_86c54726)",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 29,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#crafting_preview_info",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#hover_text"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "custom_hover_text": {
                // 클릭 가능한 버튼
                "type": "button",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_flag_86c54726)",
                // ??/???
                "enabled": "(not ($touch or $game_pad))",
                // ??? ?? ?
                "allow_clipping": false,
                // ?? ??
                "follows_cursor": "(not ($touch or $game_pad))",
                // ?? ??
                "consume_event": false,
                // ?? ??
                "consume_hover_events": false,
                // 포커스 가능 여부
                "focus_enabled": false,
                // ?? ??
                "hover_control": "$hover_control",
                // ?? ??
                "locked_control": "$locked_control",
                // 오버라이드 가능한 변수
                "$hover_control": "hover_text",
                // 오버라이드 가능한 변수
                "$locked_control": "",
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "($touch or $game_pad)",
                    // 오버라이드 가능한 변수
                    "$hover_control": "",
                    // 오버라이드 가능한 변수
                    "$locked_control": "hover_text"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "hover_text": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "0px", "0px" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "hover_text_background": {
                            // 이미지 표시
                            "type": "image",
                            // 사용할 이미지 경로
                            "texture": "($rainbowpie_ui_path_home + '/r_white')",
                            // 가로/세로 크기
                            "size": [ "100%c + 8px", "100%c + 5px" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ 10, -8 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_left",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_left",
                            // ?? ????
                            "clips_children": true,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 200,
                            // ?? (R,G,B,A)
                            "color": "$rainbowpie_ui_theme_hovertext_background_color",
                            // ???
                            "alpha": "$rainbowpie_ui_theme_hovertext_background_alpha",
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "background_icon": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ 0, 0 ],
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "$rainbowpie_ui_theme_hovertext_bgicon_anchor",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "$rainbowpie_ui_theme_hovertext_bgicon_anchor",
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "(not $rainbowpie_ui_theme_hovertext_bgicon_enabled)",
                                  // ??? ?? ?
                                  "allow_clipping": true,
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // ???/?? ??
                                      "icon_image": {
                                        // 이미지 표시
                                        "type": "image",
                                        // 가로/세로 크기
                                        "size": "$rainbowpie_ui_theme_hovertext_bgicon_size",
                                        // 붙일 위치(어디에 놓을지)
                                        "anchor_to": "$rainbowpie_ui_theme_hovertext_bgicon_anchor",
                                        // 기준점(어디에서 시작할지)
                                        "anchor_from": "$rainbowpie_ui_theme_hovertext_bgicon_anchor",
                                        // 기준점에서 이동하는 거리
                                        "offset": "$rainbowpie_ui_theme_hovertext_bgicon_offset",
                                        // 사용할 이미지 경로
                                        "texture": "$rainbowpie_ui_theme_hovertext_bgicon_texture",
                                        // ???
                                        "alpha": "$rainbowpie_ui_theme_hovertext_bgicon_alpha",
                                        // ?? ??
                                        "fill": "$rainbowpie_ui_theme_hovertext_bgicon_fill",
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": 3
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "hover_text_controls": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "vertical",
                                  // 가로/세로 크기
                                  "size": [ "100%cm", "100%c" ],
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 8,
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "hover_text_label@rainbowpie_ui_common.text_label_notheme": {
                                        // 가로/세로 크기
                                        "size": [ "default", "default" ],
                                        // ?? (R,G,B,A)
                                        "color": "$rainbowpie_ui_theme_hovertext_text_color",
                                        // 보여줄 글자
                                        "text": "#hover_text",
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 가져올 값 이름
                                            "binding_name": "#crafting_preview_info",
                                            // 가져온 값을 다른 속성으로 연결
                                            "binding_name_override": "#hover_text"
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "output_slot@common.item_renderer": {
          // 가로/세로 크기
          "size": [ "88.88888888888889%", "100%x" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#crafter_output_item",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#item_id_aux"
            },
            {
              // 가져올 값 이름
              "binding_name": "#crafter_output_item_color",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#item_custom_color"
            },
            {
              // 가져올 값 이름
              "binding_name": "#crafter_output_item_shield_base_color_hovered",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#shield_base_color"
            },
            {
              // 가져올 값 이름
              "binding_name": "#crafter_output_item_banner_patterns",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#banner_patterns"
            },
            {
              // 가져올 값 이름
              "binding_name": "#crafter_output_item_selected_banner_colors",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#banner_colors"
            },
            {
              // 가져올 값 이름
              "binding_name": "#crafter_output_item_selected_banner_type",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#banner_type"
            },
            {
              // 가져올 값 이름
              "binding_name": "#crafter_output_item_selected_decorated_pot_sherds",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#decorated_pot_sherds"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "output_slot_border": {
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 가로/세로 크기
          "size": [ "144.4444444444444%", "100%x" ],
          // 사용할 이미지 경로
          "texture": "textures/ui/crafter_item_border"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "output_count@common.stack_count_label": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 20,
          // 가로/세로 크기
          "size": [ 18, 18 ],
          // 기준점에서 이동하는 거리
          "offset": [ "78.33333333333333%", "62.22222222222222%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#output_stack_count",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#inventory_stack_count"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "crafter_disabled_slot@common.button": {
    // 클릭 가능한 버튼
    "type": "button",
    // ?? ??
    "hover_control": "hover",
    // 가로/세로 크기
    "size": [ "100%y", "100%" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 20,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "default": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/slot_disabled"
        }
      },
      {
        // ???/?? ??
        "hover": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/slot_enabled_hover"
        }
      },
      {
        // ???/?? ??
        "pressed": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/slot_disabled"
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "hopper_root_panel@common.root_panel": {
    // 가로/세로 크기
    "size": [ 168, 125 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "inventory_selected_icon_button@common.inventory_selected_icon_button": {} },
      { "gamepad_cursor@common.gamepad_cursor_button": {} },
      { "inventory_take_progress_icon_button@common.inventory_take_progress_icon_button": {} },
      {
        // ???/?? ??
        "inventory_ui_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 애니메이션 목록
          "anims": [
            "@rainbowpie_ui_animations.container_panel_exit_animation_push",
            "@rainbowpie_ui_animations.container_panel_exit_animation_pop",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_push",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_pop"
          ],
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background_icon@rainbowpie_ui_inventory.background_icon": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "chest_fastpick@rainbowpie_module_chest_fastpick.chest_fastpick_redstone": {
                // 오버라이드 가능한 변수
                "$redstone_container": true,
                // 오버라이드 가능한 변수
                "$redstone_container_hopper": true,
                // 오버라이드 가능한 변수
                "$container_item_id": "$rainbowpie_ui_flag_item_hopper",
                // 오버라이드 가능한 변수
                "$drop_button_size": [ "13.0952380952381%", "100%x" ],
                // 오버라이드 가능한 변수
                "$drop_button_offset": [ "100%x + 1.19047619047619%", "-62.4%" ],
                // 오버라이드 가능한 변수
                "$putin_button_size": [ "13.0952380952381%", "100%x" ],
                // 오버라이드 가능한 변수
                "$putin_button_offset": [ "100%x + 1.19047619047619%", "-19.2%" ],
                // 오버라이드 가능한 변수
                "$pickup_button_size": [ "13.0952380952381%", "100%x" ],
                // 오버라이드 가능한 변수
                "$pickup_button_offset": [ "100%x + 1.19047619047619%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory_header@rainbowpie_ui_inventory.header": {
                // 가로/세로 크기
                "size": [ "100%", "18.4%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title": "$container_title",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border1_size": [ "2.380952380952381%", 0 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border2_size": [ "2.380952380952381%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "common_panel@common.common_panel": {
                // 오버라이드 가능한 변수
                "$dialog_background": "rainbowpie_ui_common.inventory_background",
                // 오버라이드 가능한 변수
                "$show_close_button": false,
                // 가로/세로 크기
                "size": [ "100%", "100% - 18.4%" ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle"
              }
            },
            {
              // ???/?? ??
              "redstone_top_half": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 목록 이름
                "collection_name": "container_items",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "53.57142857142857%", "14.4%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-64.8%" ],
                // 오버라이드 가능한 변수
                "$item_collection_name": "container_items",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "container_item_0@rainbowpie_ui_inventory_and_container.container_item": {
                      // ?? ??
                      "collection_index": 0
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "container_item_1@rainbowpie_ui_inventory_and_container.container_item": {
                      // ?? ??
                      "collection_index": 1
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "container_item_2@rainbowpie_ui_inventory_and_container.container_item": {
                      // ?? ??
                      "collection_index": 2
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "container_item_3@rainbowpie_ui_inventory_and_container.container_item": {
                      // ?? ??
                      "collection_index": 3
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "container_item_4@rainbowpie_ui_inventory_and_container.container_item": {
                      // ?? ??
                      "collection_index": 4
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory@rainbowpie_ui_inventory_and_container.inventory_panel_bottom_half": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "43.2%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-19.2%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar@rainbowpie_ui_inventory_and_container.hotbar_grid_template": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "14.4%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-2.4%" ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "redstone_root_panel@common.root_panel": {
    // 가로/세로 크기
    "size": [ 168, 161 ],
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "($container_type = 'dropper')",
        // 오버라이드 가능한 변수
        "$container_item_id": "$rainbowpie_ui_flag_item_dropper"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "($container_type = 'dispenser')",
        // 오버라이드 가능한 변수
        "$container_item_id": "$rainbowpie_ui_flag_item_dispenser"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "inventory_selected_icon_button@common.inventory_selected_icon_button": {} },
      { "gamepad_cursor@common.gamepad_cursor_button": {} },
      { "inventory_take_progress_icon_button@common.inventory_take_progress_icon_button": {} },
      {
        // ???/?? ??
        "inventory_ui_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 애니메이션 목록
          "anims": [
            "@rainbowpie_ui_animations.container_panel_exit_animation_push",
            "@rainbowpie_ui_animations.container_panel_exit_animation_pop",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_push",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_pop"
          ],
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background_icon@rainbowpie_ui_inventory.background_icon": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "chest_fastpick@rainbowpie_module_chest_fastpick.chest_fastpick_redstone": {
                // 오버라이드 가능한 변수
                "$redstone_container": true,
                // 오버라이드 가능한 변수
                "$drop_button_size": [ "13.0952380952381%", "100%x" ],
                // 오버라이드 가능한 변수
                "$drop_button_offset": [ "100%x + 1.19047619047619%", "-48.4472049689441%" ],
                // 오버라이드 가능한 변수
                "$putin_button_size": [ "13.0952380952381%", "100%x" ],
                // 오버라이드 가능한 변수
                "$putin_button_offset": [ "100%x + 1.19047619047619%", "-14.90683229813665%" ],
                // 오버라이드 가능한 변수
                "$pickup_button_size": [ "13.0952380952381%", "100%x" ],
                // 오버라이드 가능한 변수
                "$pickup_button_offset": [ "100%x + 1.19047619047619%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory_header@rainbowpie_ui_inventory.header": {
                // 가로/세로 크기
                "size": [ "100%", "14.28571428571429%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title": "$container_title",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border1_size": [ "2.380952380952381%", 0 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border2_size": [ "2.380952380952381%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "common_panel@common.common_panel": {
                // 오버라이드 가능한 변수
                "$dialog_background": "rainbowpie_ui_common.inventory_background",
                // 오버라이드 가능한 변수
                "$show_close_button": false,
                // 가로/세로 크기
                "size": [ "100%", "100% - 14.28571428571429%" ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle"
              }
            },
            {
              // ???/?? ??
              "redstone_top_half": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "32.14285714285714%", "33.54037267080745%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-50.31055900621118%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "1": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 목록 이름
                      "collection_name": "container_items",
                      // 가로/세로 크기
                      "size": [ "100%", "33.33333333333333%" ],
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "container_items",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_0@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 0
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_1@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 1
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_2@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 2
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "2": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 목록 이름
                      "collection_name": "container_items",
                      // 가로/세로 크기
                      "size": [ "100%", "33.33333333333333%" ],
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "container_items",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_0@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 3
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_1@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 4
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_2@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 5
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "3": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 목록 이름
                      "collection_name": "container_items",
                      // 가로/세로 크기
                      "size": [ "100%", "33.33333333333333%" ],
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "container_items",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_0@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 6
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_1@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 7
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_2@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 8
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory@rainbowpie_ui_inventory_and_container.inventory_panel_bottom_half": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "33.54037267080745%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-14.90683229813665%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar@rainbowpie_ui_inventory_and_container.hotbar_grid_template": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "11.18012422360248%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-1.863354037267081%" ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "crafter_root_panel@common.root_panel": {
    // 가로/세로 크기
    "size": [ 168, 161 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "inventory_selected_icon_button@common.inventory_selected_icon_button": {} },
      { "gamepad_cursor@common.gamepad_cursor_button": {} },
      { "inventory_take_progress_icon_button@common.inventory_take_progress_icon_button": {} },
      {
        // ???/?? ??
        "inventory_ui_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 애니메이션 목록
          "anims": [
            "@rainbowpie_ui_animations.container_panel_exit_animation_push",
            "@rainbowpie_ui_animations.container_panel_exit_animation_pop",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_push",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_pop"
          ],
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background_icon@rainbowpie_ui_inventory.background_icon": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "chest_fastpick@rainbowpie_module_chest_fastpick.chest_fastpick_redstone": {
                // 오버라이드 가능한 변수
                "$redstone_container": true,
                // 오버라이드 가능한 변수
                "$container_item_id": "$rainbowpie_ui_flag_item_crafter",
                // 오버라이드 가능한 변수
                "$drop_button_size": [ "13.0952380952381%", "100%x" ],
                // 오버라이드 가능한 변수
                "$drop_button_offset": [ "100%x + 1.19047619047619%", "-48.4472049689441%" ],
                // 오버라이드 가능한 변수
                "$putin_button_size": [ "13.0952380952381%", "100%x" ],
                // 오버라이드 가능한 변수
                "$putin_button_offset": [ "100%x + 1.19047619047619%", "-14.90683229813665%" ],
                // 오버라이드 가능한 변수
                "$pickup_button_size": [ "13.0952380952381%", "100%x" ],
                // 오버라이드 가능한 변수
                "$pickup_button_offset": [ "100%x + 1.19047619047619%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory_header@rainbowpie_ui_inventory.header": {
                // 가로/세로 크기
                "size": [ "100%", "14.28571428571429%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title": "$container_title",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border1_size": [ "2.380952380952381%", 0 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border2_size": [ "2.380952380952381%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "common_panel@common.common_panel": {
                // 오버라이드 가능한 변수
                "$dialog_background": "rainbowpie_ui_common.inventory_background",
                // 오버라이드 가능한 변수
                "$show_close_button": false,
                // 가로/세로 크기
                "size": [ "100%", "100% - 14.28571428571429%" ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle"
              }
            },
            {
              // ???/?? ??
              "crafter_input": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_left",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_left",
                // 가로/세로 크기
                "size": [ "32.14285714285714%", "33.54037267080745%" ],
                // 기준점에서 이동하는 거리
                "offset": [ "12.5%", "-50.31055900621118%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "1": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 목록 이름
                      "collection_name": "container_items",
                      // 가로/세로 크기
                      "size": [ "100%", "33.33333333333333%" ],
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "container_items",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "disabled_slot_0_button@rainbowpieui_redstone.crafter_disabled_slot": {
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "disabled_button0",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#button_visible0",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_0@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 0,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "(not #button_visible0)",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "disabled_slot_1_button@rainbowpieui_redstone.crafter_disabled_slot": {
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "disabled_button1",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#button_visible1",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_1@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 1,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "(not #button_visible1)",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "disabled_slot_2_button@rainbowpieui_redstone.crafter_disabled_slot": {
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "disabled_button2",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#button_visible2",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_2@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 2,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "(not #button_visible2)",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "2": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 목록 이름
                      "collection_name": "container_items",
                      // 가로/세로 크기
                      "size": [ "100%", "33.33333333333333%" ],
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "container_items",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "disabled_slot_0_button@rainbowpieui_redstone.crafter_disabled_slot": {
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "disabled_button3",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#button_visible3",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_0@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 3,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "(not #button_visible3)",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "disabled_slot_1_button@rainbowpieui_redstone.crafter_disabled_slot": {
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "disabled_button4",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#button_visible4",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_1@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 4,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "(not #button_visible4)",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "disabled_slot_2_button@rainbowpieui_redstone.crafter_disabled_slot": {
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "disabled_button5",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#button_visible5",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_2@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 5,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "(not #button_visible5)",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "3": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 목록 이름
                      "collection_name": "container_items",
                      // 가로/세로 크기
                      "size": [ "100%", "33.33333333333333%" ],
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "container_items",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "disabled_slot_0_button@rainbowpieui_redstone.crafter_disabled_slot": {
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "disabled_button6",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#button_visible6",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_0@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 6,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "(not #button_visible6)",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "disabled_slot_1_button@rainbowpieui_redstone.crafter_disabled_slot": {
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "disabled_button7",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#button_visible7",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_1@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 7,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "(not #button_visible7)",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "disabled_slot_2_button@rainbowpieui_redstone.crafter_disabled_slot": {
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "disabled_button8",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#button_visible8",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "container_item_2@rainbowpie_ui_inventory_and_container.container_item": {
                            // ?? ??
                            "collection_index": 8,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "(not #button_visible8)",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "redstone_wire_line": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 가로/세로 크기
                "size": [ "10.71428571428571%", "100%x" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 기준점에서 이동하는 거리
                "offset": [ "54.16666666666667%", "26.70807453416149%" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#redstone_arrow_texture"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#redstone_arrow_texture - 'textures/ui/')",
                    // 결과가 들어갈 속성
                    "target_property_name": "#redstone_arrow_texture_filename"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(($rainbowpie_ui_path_overrides + '/ui/') + #redstone_arrow_texture_filename)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#texture"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "crafter_output@rainbowpieui_redstone.output_slot_hover_info": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 가로/세로 크기
                "size": [ "10.71428571428571%", "100%x" ],
                // 기준점에서 이동하는 거리
                "offset": [ "32.14285714285714%", "-18.01242236024845%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory@rainbowpie_ui_inventory_and_container.inventory_panel_bottom_half": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "33.54037267080745%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-14.90683229813665%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar@rainbowpie_ui_inventory_and_container.hotbar_grid_template": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "11.18012422360248%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-1.863354037267081%" ]
              }
            }
          ]
        }
      }
    ]
  }
}

resource_packs_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: resource_packs_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_resource_packs",

  // 다른 템플릿을 가져와서 확장(상속)
  "selected_pack_movement_button@common_buttons.light_content_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // 오버라이드 가능한 변수
    "$pressed_button_name": "$button.selected_pack",
    // 오버라이드 가능한 변수
    "$visible_binding_name|default": "(not #is_selected)",
    // 오버라이드 가능한 변수
    "$visible_binding_type|default": "collection",
    // 오버라이드 가능한 변수
    "$enabled_binding_name|default": "#is_selected",
    // 오버라이드 가능한 변수
    "$enabled_binding_type|default": "collection",

    // If $visible_binding_name isn't set we won't use that bind.
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "($visible_binding_name = '' and $visible_binding_type = collection)",
        // 오버라이드 가능한 변수
        "$visible_binding_type": "none"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "($enabled_binding_name = '' and $enabled_binding_type = collection)",
        // 오버라이드 가능한 변수
        "$enabled_binding_type": "none"
      }
    ],

    // 가로/세로 크기
    "size": [ 18, 18 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 이름
        "binding_collection_name": "$button_collection_name",
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details"
      },
      {
        // 목록 이름
        "binding_collection_name": "$button_collection_name",
        // 가져올 값 이름
        "binding_name": "$visible_binding_name",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // 바인딩 종류(변수로 관리되는 경우도 있음)
        "binding_type": "$visible_binding_type"
      },
      {
        // 목록 이름
        "binding_collection_name": "$button_collection_name",
        // 가져올 값 이름
        "binding_name": "$enabled_binding_name",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#enabled",
        // 바인딩 종류(변수로 관리되는 경우도 있음)
        "binding_type": "$enabled_binding_type"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "selected_pack_plus_button@rainbowpieui_resource_packs.selected_pack_movement_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // 오버라이드 가능한 변수
    "$focus_id": "selected_pack_plus_button",
    // 처음 포커스 우선순위
    "default_focus_precedence": 1,
    // 오버라이드 가능한 변수
    "$pressed_button_name": "$button.move_left",
    // 오버라이드 가능한 변수
    "$button_content": "resource_packs.plus_image",
    // 오버라이드 가능한 변수
    "$visible_binding_name": "#can_move"
  },

  // ???/?? ??
  "up_arrow_image": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/up_arrow",
    // 가로/세로 크기
    "size": [ 14, 14 ]
  },

  // ???/?? ??
  "down_arrow_image": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/down_arrow",
    // 가로/세로 크기
    "size": [ 14, 14 ]
  },

  // ???/?? ??
  "home_button_content": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/store_home_icon",
    // 가로/세로 크기
    "size": [ 13, 11 ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "selected_pack_minus_button@rainbowpieui_resource_packs.selected_pack_movement_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // 오버라이드 가능한 변수
    "$focus_id": "selected_pack_minus_button",
    // 처음 포커스 우선순위
    "default_focus_precedence": 1,
    // 오버라이드 가능한 변수
    "$pressed_button_name": "$button.move_left",
    // 오버라이드 가능한 변수
    "$button_content": "resource_packs.minus_image",
    // 오버라이드 가능한 변수
    "$visible_binding_name": "#can_move"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "selected_pack_store_button@rainbowpieui_resource_packs.selected_pack_movement_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // 오버라이드 가능한 변수
    "$focus_id": "selected_pack_store_button",
    // 처음 포커스 우선순위
    "default_focus_precedence": 1,
    // 오버라이드 가능한 변수
    "$pressed_button_name": "$button.store",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_resource_packs.home_button_content",
    // 오버라이드 가능한 변수
    "$visible_binding_name": "#can_go_to_store"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "selected_pack_options_button@common_buttons.light_content_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // 오버라이드 가능한 변수
    "$focus_id": "selected_pack_options_button",
    // 오버라이드 가능한 변수
    "$pressed_button_name": "$button.pack_settings",
    // 오버라이드 가능한 변수
    "$button_content": "resource_packs.options_image_panel",

    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$button_collection_name",
        // 가져올 값 이름
        "binding_name": "#has_pack_settings",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      },
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "$button_collection_name"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "selected_pack_up_button@rainbowpieui_resource_packs.selected_pack_movement_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // 오버라이드 가능한 변수
    "$focus_id": "selected_pack_up_button",
    // 오버라이드 가능한 변수
    "$pressed_button_name": "$button.sort_up",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_resource_packs.up_arrow_image",
    // 오버라이드 가능한 변수
    "$visible_binding_name": "#can_sort_up"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "selected_pack_down_button@rainbowpieui_resource_packs.selected_pack_movement_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // 오버라이드 가능한 변수
    "$focus_id": "selected_pack_down_button",
    // 오버라이드 가능한 변수
    "$pressed_button_name": "$button.sort_down",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_resource_packs.down_arrow_image",
    // 오버라이드 가능한 변수
    "$visible_binding_name": "#can_sort_down"
  },

  // ???/?? ??
  "warning_image_wrapper": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 16, 14 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "icon_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "error_image@resource_packs.error_image_panel": {
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 목록 이름
                    "binding_collection_name": "$selected_pack_items",
                    // 가져올 값 이름
                    "binding_name": "#has_errors",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "warning_image@resource_packs.warning_panel": {
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 목록 이름
                    "binding_collection_name": "$selected_pack_items",
                    // 가져올 값 이름
                    "binding_name": "#has_errors",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection"
                  },
                  {
                    // 목록 이름
                    "binding_collection_name": "$selected_pack_items",
                    // 가져올 값 이름
                    "binding_name": "#has_warnings",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#has_warnings and not #has_errors)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "no_error_panel@resource_packs.no_error_panel": {
                // 기준점에서 이동하는 거리
                "offset": [ 0, 1 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 목록 이름
                    "binding_collection_name": "$selected_pack_items",
                    // 가져올 값 이름
                    "binding_name": "#error_free",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "progress_loading_bars@resource_packs.progress_loading_bars": {
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 목록 이름
                    "binding_collection_name": "$selected_pack_items",
                    // 가져올 값 이름
                    "binding_name": "#report_generating",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection"
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 이름
              "binding_collection_name": "$button_collection_name",
              // 가져올 값 이름
              "binding_name": "#report_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "manifest_validation_icon": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ 20, 20 ],
          // ?? (R,G,B,A)
          "color": "$glyph_color",
          // 사용할 이미지 경로
          "texture": "($rainbowpie_ui_path_theme + '/icon/global/resource_packs/manifest')",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 이름
              "binding_collection_name": "$button_collection_name",
              // 가져올 값 이름
              "binding_name": "(not #report_button_visible)",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "selected_pack_warning_button@common_buttons.light_content_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // 오버라이드 가능한 변수
    "$focus_id": "selected_pack_warning_button",
    // 오버라이드 가능한 변수
    "$pressed_button_name": "$button.report_errors",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_resource_packs.warning_image_wrapper",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 이름
        "binding_collection_name": "$button_collection_name",
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details"
      },
      {
        // 목록 이름
        "binding_collection_name": "$button_collection_name",
        // 가져올 값 이름
        "binding_name": "(not #report_generating)",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#enabled",
        // 목록 데이터를 반복 연결
        "binding_type": "collection"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "available_pack_panel@rainbowpieui_resource_packs.pack_panel": {
    // 오버라이드 가능한 변수
    "$button_collection_name": "$available_pack_items",
    // 오버라이드 가능한 변수
    "$pressed_button_name": "$button.available_pack",
    // 오버라이드 가능한 변수
    "$resource_pack_button_0": "rainbowpieui_resource_packs.selected_pack_plus_button",
    // 오버라이드 가능한 변수
    "$resource_pack_button_1": "rainbowpieui_resource_packs.selected_pack_store_button",
    // 오버라이드 가능한 변수
    "$resource_pack_button_2": "rainbowpieui_resource_packs.selected_pack_warning_button",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_control|default": "rp_search_text_box_display_text",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#name",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$button_collection_name"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('\"' + #hover_text - '\n' - '§0' - '§1' - '§2' - '§3' - '§4' - '§5' - '§6' - '§7' - '§8' - '§9' - '§a' - '§b' - '§c' - '§d' - '§e' - '§f' - '§g' - '§h' - '§i' - '§j' - '§k' - '§l' - '§m' - '§n' - '§o' - '§p' - '§q' - '§r' - '§s' - '§t' - '§u' - '§v' - '§w' - '§x' - '§y' - '§z' + '\"')",
        // 결과가 들어갈 속성
        "target_property_name": "#formatted_name"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "$rainbowpie_localui_resource_packs_search_box_control",
        // 계산식/참조 값
        "source_property_name": "#item_name",
        // 결과가 들어갈 속성
        "target_property_name": "#output_text"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((not ((#formatted_name - #output_text) = #formatted_name)) or (#output_text = ''))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "selected_pack_panel@rainbowpieui_resource_packs.pack_panel": {
    // 오버라이드 가능한 변수
    "$button_collection_name": "$selected_pack_items",
    // 오버라이드 가능한 변수
    "$pressed_button_name": "$button.selected_pack",
    // 오버라이드 가능한 변수
    "$resource_pack_button_0": "rainbowpieui_resource_packs.selected_pack_minus_button",
    // 오버라이드 가능한 변수
    "$resource_pack_button_1": "rainbowpieui_resource_packs.selected_pack_store_button",
    // 오버라이드 가능한 변수
    "$resource_pack_button_2": "rainbowpieui_resource_packs.selected_pack_up_button",
    // 오버라이드 가능한 변수
    "$resource_pack_button_3": "rainbowpieui_resource_packs.selected_pack_down_button",
    // 오버라이드 가능한 변수
    "$resource_pack_button_4": "rainbowpieui_resource_packs.selected_pack_options_button",
    // 오버라이드 가능한 변수
    "$resource_pack_button_5": "rainbowpieui_resource_packs.selected_pack_warning_button",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_control|default": "rp_search_text_box_display_text",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#name",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$button_collection_name"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('\"' + #hover_text - '\n' - '§0' - '§1' - '§2' - '§3' - '§4' - '§5' - '§6' - '§7' - '§8' - '§9' - '§a' - '§b' - '§c' - '§d' - '§e' - '§f' - '§g' - '§h' - '§i' - '§j' - '§k' - '§l' - '§m' - '§n' - '§o' - '§p' - '§q' - '§r' - '§s' - '§t' - '§u' - '§v' - '§w' - '§x' - '§y' - '§z' + '\"')",
        // 결과가 들어갈 속성
        "target_property_name": "#formatted_name"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "$rainbowpie_localui_resource_packs_search_box_control",
        // 계산식/참조 값
        "source_property_name": "#item_name",
        // 결과가 들어갈 속성
        "target_property_name": "#output_text"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((not ((#formatted_name - #output_text) = #formatted_name)) or (#output_text = ''))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "pack_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 52 ],
    // 오버라이드 가능한 변수
    "$button_collection_name": "null",
    // 오버라이드 가능한 변수
    "$pressed_button_name": "null",
    // 오버라이드 가능한 변수
    "$resource_pack_button_0|default": "resource_packs.empty_resource_pack_button",
    // 오버라이드 가능한 변수
    "$resource_pack_button_1|default": "resource_packs.empty_resource_pack_button",
    // 오버라이드 가능한 변수
    "$resource_pack_button_2|default": "resource_packs.empty_resource_pack_button",
    // 오버라이드 가능한 변수
    "$resource_pack_button_3|default": "resource_packs.empty_resource_pack_button",
    // 오버라이드 가능한 변수
    "$resource_pack_button_4|default": "resource_packs.empty_resource_pack_button",
    // 오버라이드 가능한 변수
    "$resource_pack_button_5|default": "resource_packs.empty_resource_pack_button",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "input_button_panel": {
          // 마우스/커서 따라다니는 패널
          "type": "input_panel",
          // ?? ??
          "modal": true,
          // ?? ??
          "inline_modal": true,
          // 포커스 가능 여부
          "focus_enabled": false,
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 겹치는 순서(숫자 클수록 위)
          "layer": 19,
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 가로/세로 크기
          "size": [ "100%", 50 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "pack_buttons_panel": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // ?? (R,G,B,A)
                "color": [ 0.12941176470588237, 0.12941176470588237, 0.12941176470588237 ],
                // ???
                "alpha": 0.7,
                // 겹치는 순서(숫자 클수록 위)
                "layer": 20,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_stack_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 가로/세로 크기
                      "size": [ "100%c", 30 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "$resource_pack_button_0@$resource_pack_button_0": {
                            // 완전히 제거(공간도 없음)
                            "ignored": "($resource_pack_button_0 = 'resource_packs.empty_resource_pack_button')",
                            // 가로/세로 크기
                            "size": [ 30, 30 ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "$resource_pack_button_1@$resource_pack_button_1": {
                            // 완전히 제거(공간도 없음)
                            "ignored": "($resource_pack_button_1 = 'resource_packs.empty_resource_pack_button')",
                            // 가로/세로 크기
                            "size": [ 30, 30 ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "$resource_pack_button_2@$resource_pack_button_2": {
                            // 완전히 제거(공간도 없음)
                            "ignored": "($resource_pack_button_2 = 'resource_packs.empty_resource_pack_button')",
                            // 가로/세로 크기
                            "size": [ 30, 30 ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "$resource_pack_button_3@$resource_pack_button_3": {
                            // 완전히 제거(공간도 없음)
                            "ignored": "($resource_pack_button_3 = 'resource_packs.empty_resource_pack_button')",
                            // 가로/세로 크기
                            "size": [ 30, 30 ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "$resource_pack_button_4@$resource_pack_button_4": {
                            // 완전히 제거(공간도 없음)
                            "ignored": "($resource_pack_button_4 = 'resource_packs.empty_resource_pack_button')",
                            // 가로/세로 크기
                            "size": [ 30, 30 ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "$resource_pack_button_5@$resource_pack_button_5": {
                            // 완전히 제거(공간도 없음)
                            "ignored": "($resource_pack_button_5 = 'resource_packs.empty_resource_pack_button')",
                            // 가로/세로 크기
                            "size": [ 30, 30 ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ],
          // 입력 키/버튼과 동작 연결
          "button_mappings": [
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_cancel",
              // 어떤 동작을 실행할지
              "to_button_id": "$button.deselected_pack",
              // 입력 시점(pressed 등)
              "mapping_type": "global"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_select",
              // 어떤 동작을 실행할지
              "to_button_id": "$button.deselected_pack",
              // 입력 시점(pressed 등)
              "mapping_type": "global",
              // ?? ??
              "consume_event": false
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_left",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_left",
              // 입력 시점(pressed 등)
              "mapping_type": "global",
              // ?? ??
              "scope": "view"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_right",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_right",
              // 입력 시점(pressed 등)
              "mapping_type": "global",
              // ?? ??
              "scope": "view"
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 이름
              "binding_collection_name": "$button_collection_name",
              // 가져올 값 이름
              "binding_name": "#direction_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection"
            },
            {
              // 가져올 값 이름
              "binding_name": "#is_using_gamepad",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#modal",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "pack_button@resource_packs.common_pack_button": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 가로/세로 크기
          "size": [ "100%", 50 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 18,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hover@common.focus_border_white": {
                // 가로/세로 크기
                "size": [ "100%", "100%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pressed@common.focus_border_white": {
                // 가로/세로 크기
                "size": [ "100%", "100%" ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 이름
              "binding_collection_name": "$button_collection_name",
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details"
            },
            {
              // 목록 이름
              "binding_collection_name": "$button_collection_name",
              // 가져올 값 이름
              "binding_name": "#direction_button_visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "banner": {
          // 이미지 표시
          "type": "image",
          // ?? ??
          "fill": true,
          // ??? ?? ?
          "allow_debug_missing_texture": false,
          // ??? ?? ?
          "force_texture_reload": true,
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 가로/세로 크기
          "size": [ "100%", 50 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 11,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 이름
              "binding_collection_name": "$button_collection_name",
              // 가져올 값 이름
              "binding_name": "#icon_path",
              // 목록 데이터를 반복 연결
              "binding_type": "collection"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('\"' + #icon_path - 'pack_icon.png' + 'pack_banner.png' + '\"')",
              // 결과가 들어갈 속성
              "target_property_name": "#texture"
            },
            {
              // 목록 이름
              "binding_collection_name": "$button_collection_name",
              // 가져올 값 이름
              "binding_name": "#icon_zip",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#zip_folder",
              // 목록 데이터를 반복 연결
              "binding_type": "collection"
            },
            {
              // 목록 이름
              "binding_collection_name": "$button_collection_name",
              // 가져올 값 이름
              "binding_name": "#icon_file_system",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture_file_system",
              // 목록 데이터를 반복 연결
              "binding_type": "collection"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "infomation_panel@rainbowpie_ui_common.text_background": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 가로/세로 크기
          "size": [ "100%", 50 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 12,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "debug_text@rainbowpie_ui_common.text_label": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_debug)",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 보여줄 글자
                "text": "#debug_text",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 28,
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#icon_path": "null",
                  // ???/??? ?
                  "#icon_zip": "null"
                },
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 목록 이름
                    "binding_collection_name": "$button_collection_name",
                    // 가져올 값 이름
                    "binding_name": "#icon_path",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection"
                  },
                  {
                    // 목록 이름
                    "binding_collection_name": "$button_collection_name",
                    // 가져올 값 이름
                    "binding_name": "#icon_zip",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "('icon_path: ' + #icon_path + '\nicon_zip: ' + #icon_zip)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#debug_text"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "pack_icon": {
                // 이미지 표시
                "type": "image",
                // ??? ?? ?
                "allow_debug_missing_texture": false,
                // ??? ?? ?
                "force_texture_reload": true,
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 가로/세로 크기
                "size": [ 50, 50 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4,
                // 오버라이드 가능한 변수
                "$icon_collection_name": "$button_collection_name",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "warning_panel": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 사용할 이미지 경로
                      "texture": "textures/ui/Black",
                      // ???
                      "alpha": 0.7,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "warning_text_error@rainbowpie_ui_common.text_label_notheme": {
                            // ?? ?? ??
                            "font_scale_factor": 1.5,
                            // 보여줄 글자
                            "text": "ERROR",
                            // ?? (R,G,B,A)
                            "color": "$c_color_format",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "$selected_pack_items",
                                // 가져올 값 이름
                                "binding_name": "#has_errors",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "warning_text_warning@rainbowpie_ui_common.text_label_notheme": {
                            // ?? ?? ??
                            "font_scale_factor": 1.5,
                            // 보여줄 글자
                            "text": "WARN",
                            // ?? (R,G,B,A)
                            "color": "$e_color_format",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "$selected_pack_items",
                                // 가져올 값 이름
                                "binding_name": "#has_errors",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              },
                              {
                                // 목록 이름
                                "binding_collection_name": "$selected_pack_items",
                                // 가져올 값 이름
                                "binding_name": "#has_warnings",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(#has_warnings and not #has_errors)",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ]
                          }
                        }
                      ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 목록 이름
                          "binding_collection_name": "$button_collection_name",
                          // 가져올 값 이름
                          "binding_name": "#error_free",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection"
                        },
                        {
                          // 목록 이름
                          "binding_collection_name": "$button_collection_name",
                          // 가져올 값 이름
                          "binding_name": "#report_generating",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection"
                        },
                        {
                          // 목록 이름
                          "binding_collection_name": "$button_collection_name",
                          // 가져올 값 이름
                          "binding_name": "#report_button_visible",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#report_button_visible and not #report_generating and not #error_free)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 목록 이름
                    "binding_collection_name": "$icon_collection_name",
                    // 가져올 값 이름
                    "binding_name": "#icon_path",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection"
                  },
                  {
                    // 목록 이름
                    "binding_collection_name": "$icon_collection_name",
                    // 가져올 값 이름
                    "binding_name": "#icon_zip",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#zip_folder",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection"
                  },
                  {
                    // 목록 이름
                    "binding_collection_name": "$icon_collection_name",
                    // 가져올 값 이름
                    "binding_name": "#icon_file_system",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture_file_system",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "pack_info_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 가로/세로 크기
                "size": [ "100% - 53px", "100% - 2px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 52, 0 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "title_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 가로/세로 크기
                      "size": [ "100%", 15 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "pack_name@rainbowpie_ui_common.text_label": {
                            // 글자 표시
                            "type": "label",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1,
                            // 가로/세로 크기
                            "size": [ "default", 15 ],
                            // ?? ?? ?
                            "max_size": [ "80%", 15 ],
                            // 보여줄 글자
                            "text": "#pack_name",
                            // ?? ?? ??
                            "font_scale_factor": 1.5,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "$button_collection_name",
                                // 가져올 값 이름
                                "binding_name": "#name",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(((#name - '[PML]') - '[HOTFIX]') - '[UITheme]')",
                                // 결과가 들어갈 속성
                                "target_property_name": "#pack_name"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "padding_0@common.empty_panel": {
                            // 가로/세로 크기
                            "size": [ 2, 0 ],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "$button_collection_name",
                                // 가져올 값 이름
                                "binding_name": "#name",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(not ((('|'+#name) - '[PML]') = ('|'+#name)))",
                                // 결과가 들어갈 속성
                                "target_property_name": "#is_module_pack"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(not ((('|'+#name) - '[HOTFIX]') = ('|'+#name)))",
                                // 결과가 들어갈 속성
                                "target_property_name": "#is_hotfix_pack"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(not ((('|'+#name) - '[UITheme]') = ('|'+#name)))",
                                // 결과가 들어갈 속성
                                "target_property_name": "#is_theme_pack"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(#is_module_pack or #is_hotfix_pack or #is_theme_pack)",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "pack_name_tag_module@rainbowpie_ui_common.text_label_notheme": {
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1,
                            // 가로/세로 크기
                            "size": [ "default", 15 ],
                            // 보여줄 글자
                            "text": "rainbowpie.ui.resource_packs.tag.module",
                            // ?? ?? ??
                            "font_scale_factor": 1.5,
                            // ?? (R,G,B,A)
                            "color": "$b_color_format",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "$button_collection_name",
                                // 가져올 값 이름
                                "binding_name": "#name",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(not ((('|'+#name) - '[PML]') = ('|'+#name)))",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "pack_name_tag_package@rainbowpie_ui_common.text_label_notheme": {
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1,
                            // 가로/세로 크기
                            "size": [ "default", 15 ],
                            // 보여줄 글자
                            "text": "rainbowpie.ui.resource_packs.tag.package",
                            // ?? ?? ??
                            "font_scale_factor": 1.5,
                            // ?? (R,G,B,A)
                            "color": "$b_color_format",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "$button_collection_name",
                                // 가져올 값 이름
                                "binding_name": "#name",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(not ((('|'+#name) - '[HOTFIX]') = ('|'+#name)))",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "pack_name_tag_theme@rainbowpie_ui_common.text_label_notheme": {
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1,
                            // 가로/세로 크기
                            "size": [ "default", 15 ],
                            // 보여줄 글자
                            "text": "rainbowpie.ui.resource_packs.tag.theme",
                            // ?? ?? ??
                            "font_scale_factor": 1.5,
                            // ?? (R,G,B,A)
                            "color": "$b_color_format",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "$button_collection_name",
                                // 가져올 값 이름
                                "binding_name": "#name",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(not ((('|'+#name) - '[UITheme]') = ('|'+#name)))",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "padding_1@common.empty_panel": {
                            // 가로/세로 크기
                            "size": [ "fill", 0 ]
                          }
                        },
                        {
                          // ???/?? ??
                          "error_text": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 가로/세로 크기
                            "size": [ "100%c", 10 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "glyph_image_panel": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ "50%y", "100%" ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // ???/?? ??
                                      "glyph_image": {
                                        // 이미지 표시
                                        "type": "image",
                                        // 가로/세로 크기
                                        "size": [ "100%", "100%" ],
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 0, 1 ],
                                        // 사용할 이미지 경로
                                        "texture": "textures/ui/ErrorGlyph"
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "padding_0@common.empty_panel": {
                                  // 가로/세로 크기
                                  "size": [ 1, 0 ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "error_number@rainbowpie_ui_common.text_label": {
                                  // 가로/세로 크기
                                  "size": [ "default", "100%" ],
                                  // "font_type": "MinecraftTen",
                                  // "font_scale_factor": 0.8,
                                  "text": "#num_errors",
                                  // ?? (R,G,B,A)
                                  "color": "$error_text_color",
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#num_errors",
                                      // 목록 이름
                                      "binding_collection_name": "$button_collection_name",
                                      // 목록 데이터를 반복 연결
                                      "binding_type": "collection"
                                    }
                                  ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "padding_1@common.empty_panel": {
                                  // 가로/세로 크기
                                  "size": [ 2, 0 ]
                                }
                              }
                            ],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "$button_collection_name",
                                // 가져올 값 이름
                                "binding_name": "#has_errors",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "warning_text": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 가로/세로 크기
                            "size": [ "100%c", 10 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "glyph_image_panel": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ "50%y", "100%" ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // ???/?? ??
                                      "glyph_image": {
                                        // 이미지 표시
                                        "type": "image",
                                        // 가로/세로 크기
                                        "size": [ "100%", "100%" ],
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 0, 1 ],
                                        // 사용할 이미지 경로
                                        "texture": "textures/ui/WarningGlyph"
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "padding_0@common.empty_panel": {
                                  // 가로/세로 크기
                                  "size": [ 1, 0 ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "warning_number@rainbowpie_ui_common.text_label": {
                                  // 가로/세로 크기
                                  "size": [ "default", "100%" ],
                                  // "font_type": "MinecraftTen",
                                  // "font_scale_factor": 0.8,
                                  "text": "#num_warnings",
                                  // ?? (R,G,B,A)
                                  "color": "$warning_text_color",
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#num_warnings",
                                      // 목록 이름
                                      "binding_collection_name": "$button_collection_name",
                                      // 목록 데이터를 반복 연결
                                      "binding_type": "collection"
                                    }
                                  ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "padding_1@common.empty_panel": {
                                  // 가로/세로 크기
                                  "size": [ 2, 0 ]
                                }
                              }
                            ],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "$button_collection_name",
                                // 가져올 값 이름
                                "binding_name": "#has_warnings",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "dev_tag": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "$button_collection_name",
                                // 가져올 값 이름
                                "binding_name": "#icon_path",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(not (('\"' + #icon_path - '/development_' + '\"') = #icon_path)",
                                // 결과가 들어갈 속성
                                "target_property_name": "#is_development_icon_path"
                              },
                              {
                                // 목록 이름
                                "binding_collection_name": "$button_collection_name",
                                // 가져올 값 이름
                                "binding_name": "#icon_zip",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(not (('\"' + #icon_zip - '/development_' + '\"') = #icon_zip)",
                                // 결과가 들어갈 속성
                                "target_property_name": "#is_development_icon_zip"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(#is_development_icon_path or #is_development_icon_zip)",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "dev_tag_label@rainbowpie_ui_common.text_label": {
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 1,
                                  // 가로/세로 크기
                                  "size": [ "default", "default" ],
                                  // 보여줄 글자
                                  "text": "[DEV]",
                                  // ?? (R,G,B,A)
                                  "color": [ 1.0, 1.0, 0.333 ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "dev_tag_padding@common.empty_panel": {
                                  // 가로/세로 크기
                                  "size": [ 2, 0 ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "pack_size@rainbowpie_ui_common.text_label": {
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1,
                            // 가로/세로 크기
                            "size": [ "default", "default" ],
                            // 보여줄 글자
                            "text": "#size",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "$button_collection_name",
                                // 가져올 값 이름
                                "binding_name": "#size",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "pack_description@rainbowpie_ui_common.text_label": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 가로/세로 크기
                      "size": [ "100%", "fill" ],
                      // 보여줄 글자
                      "text": "#description",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 목록 이름
                          "binding_collection_name": "$button_collection_name",
                          // 가져올 값 이름
                          "binding_name": "#description",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "resource_packs_header": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "header_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100% - 4px", "100%c" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "top_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 0, 2 ]
              }
            },
            {
              // ???/?? ??
              "top_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 보이기/숨기기(공간 유지)
                "visible": "$show_checkbox",
                // 가로/세로 크기
                "size": [ "100%", 20 ],
                // 오버라이드 가능한 변수
                "$force_pack_download_binding_type|default": "none",

                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "panel_bg@resource_packs.panel_bg": {} },
                  { "header_control@resource_packs.header_control": {} }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#force_pack_download_enabled_level",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 바인딩 종류(변수로 관리되는 경우도 있음)
                    "binding_type": "$force_pack_download_binding_type"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#force_pack_download_locked_level",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#enabled",
                    // 바인딩 종류(변수로 관리되는 경우도 있음)
                    "binding_type": "$force_pack_download_binding_type"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "top_panel_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 0, 1 ],
                // 보이기/숨기기(공간 유지)
                "visible": "$show_checkbox",
                // 오버라이드 가능한 변수
                "$force_pack_download_binding_type|default": "none",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#force_pack_download_enabled_level",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 바인딩 종류(변수로 관리되는 경우도 있음)
                    "binding_type": "$force_pack_download_binding_type"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "navigation_tab_panel@rainbowpieui_resource_packs.navigation_tab_panel": {
                // 완전히 제거(공간도 없음)
                "ignored": "((not $rainbowpie_ui_flag_54edd49d) or ($rainbowpie_localui_resource_packs_type = 'null')"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "search_text_box@common.text_edit_box": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 5,
                // 가로/세로 크기
                "size": [ "100%", 22 ],
                // 오버라이드 가능한 변수
                "$text_box_name": "rp_search_text_box",
                // 오버라이드 가능한 변수
                "$text_edit_box_content_binding_name": "#rp_search_text_box_item_name",
                // 오버라이드 가능한 변수
                "$text_edit_text_control": "$rainbowpie_localui_resource_packs_search_box_control",
                // 오버라이드 가능한 변수
                "$place_holder_control": "rainbowpieui_resource_packs.search_text_box_place_holder_control",
                // 오버라이드 가능한 변수
                "$place_holder_text": "$rainbowpie_localui_resource_packs_search_box_placeholder",
                // 끝에서 다시 처음으로 순환
                "focus_wrap_enabled": false,
                // ?? ?? ?
                "max_length": 32767
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "resource_packs_screen": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_type|default": "null",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_control|default": "rp_search_text_box_display_text",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_placeholder|default": "rainbowpie.ui.resource_packs.search.placeholder.resource",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "section_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 완전히 제거(공간도 없음)
          "ignored": "((not $rainbowpie_ui_flag_54edd49d) or ($rainbowpie_localui_resource_packs_type = 'null')",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "selected_pack_section": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "selected_pack_grid@resource_packs.selected_pack_grid": {
                      // 가로/세로 크기
                      "size": [ "100%", "default" ],
                      // 목록 아이템을 자동으로 생성
                      "factory": {
                        // ?? ??
                        "name": "selected_pack_factory",
                        // ??? ???
                        "control_name": "rainbowpieui_resource_packs.selected_pack_panel"
                      }
                    }
                  },
                  {
                    // ???/?? ??
                    "padding": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 2, 2 ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "default_item@rainbowpie_ui_common.text_background": {
                      // 가로/세로 크기
                      "size": [ "100%", 50 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "pack_icon": {
                            // 이미지 표시
                            "type": "image",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 가로/세로 크기
                            "size": [ 50, 50 ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 4,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "$default_item_texture",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#texture"
                              },
                              {
                                // 가져올 값 이름
                                "binding_name": "$default_item_file_system",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#texture_file_system"
                              },
                              {
                                // 가져올 값 이름
                                "binding_name": "$default_item_zip",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#zip_folder"
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "pack_info_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 가로/세로 크기
                            "size": [ "100% - 53px", "100% - 2px" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ 52, 0 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "title_panel": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 가로/세로 크기
                                  "size": [ "100%", 15 ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "pack_name@rainbowpie_ui_common.text_label": {
                                        // 글자 표시
                                        "type": "label",
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": 1,
                                        // 가로/세로 크기
                                        "size": [ "default", 15 ],
                                        // ?? ?? ?
                                        "max_size": [ "80%", 15 ],
                                        // 보여줄 글자
                                        "text": "$default_item_title",
                                        // ?? ?? ??
                                        "font_scale_factor": 1.5
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "pack_description@rainbowpie_ui_common.text_label": {
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 1,
                                  // 가로/세로 크기
                                  "size": [ "100%", "fill" ],
                                  // 보여줄 글자
                                  "text": "$default_item_description"
                                }
                              }
                            ]
                          }
                        }
                      ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "$rainbowpie_localui_resource_packs_search_box_control",
                          // 계산식/참조 값
                          "source_property_name": "#item_name",
                          // 결과가 들어갈 속성
                          "target_property_name": "#output_text"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#output_text = '')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "($rainbowpie_localui_resource_packs_type + '_selected_packs_navigation_tab_toggle')",
                    // 계산식/참조 값
                    "source_property_name": "#toggle_state",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "available_packs_section": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "available_pack_grid@resource_packs.available_pack_grid": {
                      // 가로/세로 크기
                      "size": [ "100%", "default" ],
                      // 목록 아이템을 자동으로 생성
                      "factory": {
                        // ?? ??
                        "name": "available_pack_factory",
                        // ??? ???
                        "control_name": "rainbowpieui_resource_packs.available_pack_panel"
                      }
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "($rainbowpie_localui_resource_packs_type + '_available_packs_navigation_tab_toggle')",
                    // 계산식/참조 값
                    "source_property_name": "#toggle_state",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "search_text_box_place_holder_control": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "search_icon": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 가로/세로 크기
          "size": [ 16, 16 ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 1 ],
          // 사용할 이미지 경로
          "texture": "textures/ui/magnifyingGlass",
          // ???
          "alpha": 0.5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "place_holder_text@common.text_edit_box_place_holder_label": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 18, 0 ]
        }
      }
    ]
  },

  // ???/?? ??
  "navigation_tab_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 가로/세로 크기
    "size": [ "100%", 20 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_packs_navigation_tab@rainbowpieui_resource_packs.top_tab": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ],
          // 오버라이드 가능한 변수
          "$tab_view_binding_name": "($rainbowpie_localui_resource_packs_type + '_selected_packs_navigation_tab_toggle')",
          // 오버라이드 가능한 변수
          "$tab_text": "rainbowpie.ui.resource_packs.tab.selected_packs",
          // 오버라이드 가능한 변수
          "$tab_content": "rainbowpieui_resource_packs.selected_packs_title_content",
          // 오버라이드 가능한 변수
          "$toggle_group_forced_index": 0,
          // 오버라이드 가능한 변수
          "$toggle_default_state": true
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "available_packs_navigation_tab@rainbowpieui_resource_packs.top_tab": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ],
          // 오버라이드 가능한 변수
          "$tab_view_binding_name": "($rainbowpie_localui_resource_packs_type + '_available_packs_navigation_tab_toggle')",
          // 오버라이드 가능한 변수
          "$tab_text": "rainbowpie.ui.resource_packs.tab.available_packs",
          // 오버라이드 가능한 변수
          "$tab_content": "rainbowpieui_resource_packs.available_packs_title_content",
          // 오버라이드 가능한 변수
          "$toggle_group_forced_index": 1
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "available_packs_title_content@rainbowpieui_resource_packs.selected_packs_title_content": {
    // 오버라이드 가능한 변수
    "$title_text": "$available_label_text",
    // 오버라이드 가능한 변수
    "$icon_texture": "textures/items/book_normal",
    // 오버라이드 가능한 변수
    "$count_name": "#available_count",
    // 오버라이드 가능한 변수
    "$name_collection_name": "$available_pack_items",
    // 오버라이드 가능한 변수
    "$grid_visible": "#available_grid_visible",
    // 오버라이드 가능한 변수
    "$ignore_tooltip": true
  },

  // ???/?? ??
  "selected_packs_title_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100% - 2px", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 오버라이드 가능한 변수
    "$title_text|default": "$selected_label_text",
    // 오버라이드 가능한 변수
    "$icon_texture|default": "textures/blocks/grass_side_carried",
    // 오버라이드 가능한 변수
    "$count_name|default": "#selected_count",
    // 오버라이드 가능한 변수
    "$name_collection_name|default": "$selected_pack_items",
    // 오버라이드 가능한 변수
    "$grid_visible|default": "#selected_grid_visible",
    // 오버라이드 가능한 변수
    "$ignore_tooltip|default": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_label@rainbowpie_ui_common.text_label_notheme": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 가로/세로 크기
          "size": [ "default", 10 ],
          // ?? ?? ?
          "max_size": [ "50%", 10 ],
          // 보여줄 글자
          "text": "$title_text",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      },
      {
        // ???/?? ??
        "icon_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "block_icon": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ 11, 11 ],
                // 사용할 이미지 경로
                "texture": "$icon_texture"
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 이름
              "binding_collection_name": "$name_collection_name",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 가져올 값 이름
              "binding_name": "#any_exceptions"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not #any_exceptions)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "tooltip": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 가로/세로 크기
          "size": [ 11, 11 ],
          // 완전히 제거(공간도 없음)
          "ignored": "$ignore_tooltip",
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "tooltip_image_wrapper@resource_packs.tooltip_image_wrapper": {
                // 오버라이드 가능한 변수
                "$button_collection_name": "$name_collection_name"
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 이름
              "binding_collection_name": "$name_collection_name",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 가져올 값 이름
              "binding_name": "#any_exceptions",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "count@rainbowpie_ui_common.text_label_notheme": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 가로/세로 크기
          "size": [ "default", 10 ],
          // ?? ?? ?
          "max_size": [ 30, 10 ],
          // 기준점에서 이동하는 거리
          "offset": [ -14, -2 ],
          // 보여줄 글자
          "text": "$count_name",
          // ??
          "font_type": "MinecraftTen",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$count_name",
              // 목록 이름
              "binding_collection_name": "$name_collection_name",
              // 목록 데이터를 반복 연결
              "binding_type": "collection"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "top_tab@common_tabs.tab_top": {
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "($rainbowpie_localui_resource_packs_type + '_rainbowpieui_navigation_tab')",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 0,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 오버라이드 가능한 변수
    "$tab_content": "rainbowpieui_resource_packs.top_tab_content"
  },

  // ???/?? ??
  "top_tab_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "tab_label@rainbowpie_ui_common.text_label_notheme": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 가로/세로 크기
          "size": [ "default", "default" ],
          // ?? ??
          "text_alignment": "center",
          // 보여줄 글자
          "text": "$tab_text",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  }
}

safe_zone_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: safe_zone_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_safe_zone",

  // ???/?? ??
  "background_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": -1,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background_blur@mintui_background.background_blur_fullscreen": {}
      }
    ]
  },

  // ??? ??
  "scrolling_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c + 4px" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "content_panel@safe_zone.content_panel": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center"
        }
      }
    ]
  },

  // ???/?? ??
  "dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "scrolling_panel@common.scrolling_panel": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_scrollbar_enabled": true,
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_sliderbar_enabled": true,
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 오버라이드 가능한 변수
                      "$scrolling_pane_size": [ "100% - 4px", "100%" ],
                      // 오버라이드 가능한 변수
                      "$scrolling_pane_offset": [ 2, 0 ],
                      // 오버라이드 가능한 변수
                      "$scroll_size": [ 4, "100% - 4px" ],
                      // 오버라이드 가능한 변수
                      "$scrolling_content": "rainbowpieui_safe_zone.scrolling_content",
                      // 오버라이드 가능한 변수
                      "$scroll_bar_left_padding_size": [ 2, 0 ],
                      // 오버라이드 가능한 변수
                      "$scroll_bar_right_padding_size": [ 0, 0 ],
                      // 오버라이드 가능한 변수
                      "$show_background": false,
                      // 오버라이드 가능한 변수
                      "$bar_visible": true
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c + 1px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100% + 1px", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "button_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_default_alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 가로/세로 크기
                            "size": [ "100%", 23 ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "confirm_button@common_buttons.light_text_button": {
                                  // 오버라이드 가능한 변수
                                  "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                  // 가로/세로 크기
                                  "size": [ "fill", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$button_text": "gui.confirm",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.confirm_button"
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "dialog_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": "$dialog_size",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 18,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialogheader_title": "options.safeZone.title",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_content": "rainbowpieui_safe_zone.dialog_content",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_show_background": false,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialogheader_show_close": false
        }
      }
    ]
  }
}

scoreboards_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: scoreboards_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_scoreboard",

  // ???/?? ??
  "scoreboard_sidebar_player_inner_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%cm", "100%cm" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "left_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "left_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "player_name_text@rainbowpie_ui_common.text_label": {
          // 가로/세로 크기
          "size": [ "default", "default" ],
          // ?? ?? ?
          "max_size": [ 100, "default" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 보여줄 글자
          "text": "#player_name_sidebar",
          // ?? (R,G,B,A)
          "color": "$player_name_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#player_name_sidebar",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "scoreboard_players"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (#player_name_sidebar - ((' ' + $rainbowpie_localui_text_replace_pattern + ' ') - ' *' - '* ' - '  ') = #player_name_sidebar))",
              // 결과가 들어갈 속성
              "target_property_name": "#matches_player_name"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not #matches_player_name)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "replacement_text@rainbowpie_ui_common.text_label": {
          // 가로/세로 크기
          "size": [ "default", "default" ],
          // ?? ?? ?
          "max_size": [ 100, "default" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 보여줄 글자
          "text": "$rainbowpie_localui_text_replace_replacement",
          // ?? (R,G,B,A)
          "color": "$player_name_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#player_name_sidebar",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "scoreboard_players"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (#player_name_sidebar - ((' ' + $rainbowpie_localui_text_replace_pattern + ' ') - ' *' - '* ' - '  ') = #player_name_sidebar))",
              // 결과가 들어갈 속성
              "target_property_name": "#matches_player_name"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#matches_player_name)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  }
}

screenshot_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: screenshot_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_screenshot",

  // ???/?? ??
  "screenshot_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [

    ]
  }
}

server_form_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: server_form_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.8.10286.1 (v1.21.50)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_server_form",

  // ???/?? ??
  "search_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "50%", "50%" ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/serverform/search')"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "search_button_toggle_base@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_border_enabled": false,
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_server_form.search_icon",

    // 오버라이드 가능한 변수
    "$button_type_panel": "common_buttons.new_ui_binding_button_label",
    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_serverform_item_search",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 1001,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  },

  // ???/?? ??
  "hide_search_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/chevron_right",
    // 가로/세로 크기
    "size": [ "70%", "70%" ],
    // ?? (R,G,B,A)
    "color": "$text_color"
  },

  // ???/?? ??
  "search_box_place_holder_control": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%cm" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "search_icon": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 가로/세로 크기
          "size": [ 10, 10 ],
          // 사용할 이미지 경로
          "texture": "($rainbowpie_ui_path_theme + '/icon/serverform/search')",
          // ???
          "alpha": 0.5
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "place_holder_text@common.text_edit_box_place_holder_label": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 12, 0 ]
        }
      }
    ]
  },

  // ???/?? ??
  "ui_mode_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/serverform/ui_mode')",
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 8
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "vanilla_button@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text": "rainbowpie.ui.serverform.vanilla_tip",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text_offset": [ -10, -10 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text_anchor": "top_right",
    // 완전히 제거(공간도 없음)
    "ignored": "((not $rainbowpie_localui_backup_screen) or ($screen_content = $rainbowpie_localui_backup_screen_content))",
    // ??/???
    "enabled": false,
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_server_form.ui_mode_icon",

    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "rainbowpie.ui.serverform.vanilla",

    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_serverformui_toggle",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 900,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 900,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "vanilla_serverform",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "vanilla_serverform",
        // 계산식/참조 값
        "source_property_name": "(not #toggle_state)",
        // 결과가 들어갈 속성
        "target_property_name": "#enabled"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "serverformui_button@rainbowpieui_server_form.vanilla_button": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text": "rainbowpie.ui.serverform.serverformui_tip",
    // 오버라이드 가능한 변수
    "$button_text": "rainbowpie.ui.serverform.serverformui",
    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 901,
    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "rainbowpie_serverformui",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "rainbowpie_serverformui",
        // 계산식/참조 값
        "source_property_name": "(not #toggle_state)",
        // 결과가 들어갈 속성
        "target_property_name": "#enabled"
      }
    ]
  },

  // ???/?? ??
  "custom_toggle": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "toggle@server_form.custom_toggle": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_toggle_enabled": true
        }
      }
    ]
  },

  // ???/?? ??
  "custom_slider": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "slider@server_form.custom_slider": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_sliderbar_enabled": true
        }
      }
    ]
  },

  // ???/?? ??
  "custom_step_slider": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "step_slider@server_form.custom_step_slider": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_sliderbar_enabled": true
        }
      }
    ]
  },

  // ???/?? ??
  "custom_dropdown": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dropdown@settings_common.option_dropdown": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dropdown_rainbowpiebutton_enabled": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dropdown_show_button": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dropdown_enabled": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dropdown_content_panel": "rainbowpieui_server_form.custom_dropdown_content_panel",

          // 오버라이드 가능한 변수
          "$option_label": "#custom_text",
          // 오버라이드 가능한 변수
          "$dropdown_content": "server_form.custom_dropdown_content",
          // 오버라이드 가능한 변수
          "$dropdown_area": "inside_header_panel",
          // 오버라이드 가능한 변수
          "$dropdown_name": "custom_dropdown",
          // 오버라이드 가능한 변수
          "$toggle_binding_type": "collection",
          // 오버라이드 가능한 변수
          "$toggle_grid_collection_name": "custom_form",
          // 오버라이드 가능한 변수
          "$options_dropdown_toggle_label_binding": "#dropdown_option_text",
          // 오버라이드 가능한 변수
          "$options_dropdown_toggle_label_binding_type": "collection",
          // 오버라이드 가능한 변수
          "$options_dropdown_toggle_label_binding_collection_name": "custom_form",
          // 오버라이드 가능한 변수
          "$dropdown_scroll_content_size": [ "100%", "200%" ],
          // 오버라이드 가능한 변수
          "$label_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#custom_text",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "custom_form"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "custom_input": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "input@server_form.custom_input": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_editbox_enabled": true,
          // 오버라이드 가능한 변수
          "$max_text_edit_length": 32500
        }
      }
    ]
  },

  // ???/?? ??
  "custom_dropdown_content_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "fill", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "custom_dropdown_length@rainbowpie_ui_common.title_label": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_debug)",
          // ?? ??
          "shadow": true,
          // ?? ??
          "text_alignment": "left",
          // 보여줄 글자
          "text": "#custom_dropdown_length_str",
          // 가로/세로 크기
          "size": [ "default", 10 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#custom_dropdown_length",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "custom_form"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('\"' + #custom_dropdown_length + '\"')",
              // 결과가 들어갈 속성
              "target_property_name": "#custom_dropdown_length_str"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "normal": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 목록 아이템을 자동으로 생성
          "factory":{
            // ?? ??
            "name": "buttons",
            // ??? ???
            "control_name": "rainbowpieui_server_form.custom_dropdown_radio"
          },
          // 목록 이름
          "collection_name": "custom_dropdown",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#custom_dropdown_length",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#collection_length",
              // 목록 이름
              "binding_collection_name": "custom_form"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (#collection_length > 4))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "many": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 목록 아이템을 자동으로 생성
          "factory":{
            // ?? ??
            "name": "buttons",
            // ??? ???
            "control_name": "rainbowpieui_server_form.custom_dropdown_radio_many"
          },
          // 목록 이름
          "collection_name": "custom_dropdown",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#custom_dropdown_length",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#collection_length",
              // 목록 이름
              "binding_collection_name": "custom_form"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#collection_length > 4)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "custom_dropdown_radio_many@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content_item_size": [ "22.22222222222222%", "default" ],
    // 오버라이드 가능한 변수
    "$toggle_name": "custom_dropdown_radio_toggle",
    // 오버라이드 가능한 변수
    "$toggle_state_binding_name": "#custom_radio_toggled",
    // 오버라이드 가능한 변수
    "$toggle_binding_type": "collection",
    // 오버라이드 가능한 변수
    "$toggle_grid_collection_name": "custom_dropdown",
    // 오버라이드 가능한 변수
    "$toggle_collection_details_type": "collection_details",

    // 오버라이드 가능한 변수
    "$radio_label_text": "#custom_radio_text",
    // 오버라이드 가능한 변수
    "$radio_label_bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#custom_radio_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "custom_dropdown"
      },
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "custom_dropdown_radio@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
    // 오버라이드 가능한 변수
    "$toggle_name": "custom_dropdown_radio_toggle",
    // 오버라이드 가능한 변수
    "$toggle_state_binding_name": "#custom_radio_toggled",
    // 오버라이드 가능한 변수
    "$toggle_binding_type": "collection",
    // 오버라이드 가능한 변수
    "$toggle_grid_collection_name": "custom_dropdown",
    // 오버라이드 가능한 변수
    "$toggle_collection_details_type": "collection_details",

    // 오버라이드 가능한 변수
    "$radio_label_text": "#custom_radio_text",
    // 오버라이드 가능한 변수
    "$radio_label_bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#custom_radio_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "custom_dropdown"
      },
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details"
      }
    ]
  },

  // ???/?? ??
  "main_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // ?? ????
    "clips_children": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_ingame_anim1": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // ???/?? ??
              "screen_stack": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "200%", "100%" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "right_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "right_middle",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "screen_padding": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "50%", "100%" ],
                      // 보이기/숨기기(공간 유지)
                      "visible": true,
                      // 이 컨트롤 안에서 쓰는 임시 저장소
                      "property_bag": {
                        // ???/??? ?
                        "#is_vanilla_serverform_ui_opened": true
                      },
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "vanilla_serverform",
                          // 계산식/참조 값
                          "source_property_name": "#toggle_state",
                          // 결과가 들어갈 속성
                          "target_property_name": "#is_vanilla_serverform_ui_opened"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#is_vanilla_serverform_ui_opened)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible",
                          // 완전히 제거(공간도 없음)
                          "ignored": "(not $rainbowpie_localui_backup_screen)"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "vanilla_serverform_ui": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "50%", "100%" ],
                      // 완전히 제거(공간도 없음)
                      "ignored": "($screen_content = $rainbowpie_localui_backup_screen_content)",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "serverformui_button@rainbowpieui_server_form.serverformui_button": {
                            // 가로/세로 크기
                            "size": [ "28px", "28px" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ -8, -17 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_right",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_right",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 125,
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100%", "100%" ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "server_form@$screen_content": {}
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "rainbowpie_serverform_ui": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "50%", "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "vanilla_button@rainbowpieui_server_form.vanilla_button": {
                            // 가로/세로 크기
                            "size": [ "28px", "28px" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ -8, -17 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_right",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_right",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 30,
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100%", "100%" ]
                          }
                        },
                        {
                          // ???/?? ??
                          "server_form_factory": {
                            // 리스트를 자동으로 생성하는 공장
                            "type": "factory",
                            // ???/?? ??
                            "factory_variables": [
                              "$rainbowpie_localui_backup_screen"
                            ],
                            // 팩토리 템플릿 매핑
                            "control_ids": {
                              // ?? ??
                              "long_form": "@rainbowpieui_server_form.long_form",
                              // ?? ??
                              "custom_form": "@rainbowpieui_server_form.custom_form"
                            }
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "custom_form@rainbowpie_ui_dialog.dialog_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_title": "#title_text",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_title_bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#title_text"
      }
    ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_extra_controls": "rainbowpieui_server_form.custom_form_dialog_button",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialog_content": "rainbowpieui_server_form.custom_form_scrolling_panel",
    // 가로/세로 크기
    "size": [ 225, 200 ]
  },

  // ???/?? ??
  "custom_form_dialog_button": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "custom_form_button_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "submit_button@common_buttons.light_text_form_fitting_button": {
                // 오버라이드 가능한 변수
                "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_form_fitting_button",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_default_alpha": 0,
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.submit_custom_form",
                // 가로/세로 크기
                "size": [ "100%c", "100%" ],
                // 오버라이드 가능한 변수
                "$button_text": "#submit_text",
                // 오버라이드 가능한 변수
                "$button_text_binding_type": "global",
                // 오버라이드 가능한 변수
                "$button_binding_condition": "once",
                // ??/???
                "enabled": true,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#submit_button_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "vanilla_serverform",
                    // 계산식/참조 값
                    "source_property_name": "#toggle_state",
                    // 결과가 들어갈 속성
                    "target_property_name": "#is_vanilla_serverform_ui_opened"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not #is_vanilla_serverform_ui_opened)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#enabled",
                    // 완전히 제거(공간도 없음)
                    "ignored": "(not $rainbowpie_localui_backup_screen)"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "custom_form_scrolling_panel@common.scrolling_panel" : {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 오버라이드 가능한 변수
    "$show_background": false,
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$scrolling_content": "rainbowpieui_server_form.custom_form_scrolling_content",
    // 오버라이드 가능한 변수
    "$scroll_size": [ 5, "100% - 4px" ],
    // 오버라이드 가능한 변수
    "$scrolling_pane_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$scrolling_pane_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_left_padding_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_right_padding_size": [ 2, 0 ],
    // 보이기/숨기기(공간 유지)
    "visible": true,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "vanilla_serverform",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#is_vanilla_serverform_ui_opened"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not #is_vanilla_serverform_ui_opened)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible",
        // 완전히 제거(공간도 없음)
        "ignored": "(not $rainbowpie_localui_backup_screen)"
      }
    ]
  },

  // ???/?? ??
  "custom_form_scrolling_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100% - 4px", "100%c" ],
    // 기준점에서 이동하는 거리
    "offset": [ 2, 0 ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "generated_form@rainbowpieui_server_form.generated_contents": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "submit_button@common_buttons.light_text_button": {
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100% - 1px" ],
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.submit_custom_form",
          // 가로/세로 크기
          "size": [ "100%", 32 ],
          // 오버라이드 가능한 변수
          "$button_text": "#submit_text",
          // 오버라이드 가능한 변수
          "$button_text_binding_type": "global",
          // 오버라이드 가능한 변수
          "$button_binding_condition": "once",
          // ??/???
          "enabled": true,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#submit_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "vanilla_serverform",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#is_vanilla_serverform_ui_opened"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not #is_vanilla_serverform_ui_opened)",
              // 결과가 들어갈 속성
              "target_property_name": "#enabled",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_localui_backup_screen)"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "generated_contents": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": ["100%", "100%c"],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",

    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // 팩토리 템플릿 매핑
      "control_ids": {
        // ?? ??
        "label": "@rainbowpieui_server_form.custom_label",
        // ?? ??
        "toggle": "@rainbowpieui_server_form.custom_toggle",
        // ?? ??
        "slider": "@rainbowpieui_server_form.custom_slider",
        // ?? ??
        "step_slider": "@rainbowpieui_server_form.custom_step_slider",
        // ?? ??
        "dropdown": "@rainbowpieui_server_form.custom_dropdown",
        // ?? ??
        "input": "@rainbowpieui_server_form.custom_input",
        // ?? ??
        "header": "@rainbowpieui_server_form.custom_header",
        // ?? ??
        "divider": "@settings_common.option_group_section_divider"
      }
    },

    // 목록 이름
    "collection_name": "custom_form",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#custom_form_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
      }
    ]
  },

  // ???/?? ??
  "custom_label": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c + 4px" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "custom_text@rainbowpie_ui_common.editable_label": {
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // ??? ?? ?
          "text_box_name": "custom_text",
          // ??? ?? ?
          "text_control": "custom_display_text",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "custom_display_text@rainbowpie_ui_common.text_label_notheme": {
                // ?? (R,G,B,A)
                "color": "$main_header_text_color",
                // 기준점에서 이동하는 거리
                "offset": [ 2, 2 ],
                // 가로/세로 크기
                "size": [ "100% - 4px", "default" ],
                // 보여줄 글자
                "text": "#custom_text",
                // 게임 값과 연결하는 규칙 목록
                "bindings":[
                  {
                    // 가져올 값 이름
                    "binding_name": "#custom_text",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "custom_form"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "custom_header": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c + 4px" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "custom_text@rainbowpie_ui_common.editable_label": {
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // ??? ?? ?
          "text_box_name": "custom_text",
          // ??? ?? ?
          "text_control": "custom_display_text",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "custom_display_text@rainbowpie_ui_common.text_label_notheme": {
                // ?? (R,G,B,A)
                "color": "$main_header_text_color",
                // 기준점에서 이동하는 거리
                "offset": [ 2, 2 ],
                // 가로/세로 크기
                "size": [ "100% - 4px", "default" ],
                // 보여줄 글자
                "text": "#custom_text",
                // ?? ?? ?
                "font_size": "large",
                // 게임 값과 연결하는 규칙 목록
                "bindings":[
                  {
                    // 가져올 값 이름
                    "binding_name": "#custom_text",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "custom_form"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "long_form@rainbowpie_ui_dialog.dialog_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_title": "#title_text",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_title_bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#title_text"
      }
    ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialogheader_extra_controls": "rainbowpieui_server_form.long_form_dialog_button",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialog_content": "rainbowpieui_server_form.long_form_scrolling_panel",
    // 가로/세로 크기
    "size": [ 225, 200 ]
  },

  // ???/?? ??
  "long_form_dialog_button": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "search_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "search_inputbox": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%c", "100%" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "show_search_box",
                    // 계산식/참조 값
                    "source_property_name": "#toggle_state",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "back_button@rainbowpieui_server_form.search_button_toggle_base": {
                      // 오버라이드 가능한 변수
                      "$button_content": "rainbowpieui_server_form.hide_search_icon",
                      // 오버라이드 가능한 변수
                      "$button_image_size": [ "100%", "100%" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 가로/세로 크기
                      "size": [ "100%y", "76%" ],
                      // 오버라이드 가능한 변수
                      "$toggle_group_forced_index": 1001,
                      // 오버라이드 가능한 변수
                      "$toggle_view_binding_name": "hide_search_box",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 10,
                      // 오버라이드 가능한 변수
                      "$button_mappings": [
                        {
                          // 어떤 입력을 받을지
                          "from_button_id": "button.menu_select",
                          // 어떤 동작을 실행할지
                          "to_button_id": "button.menu_select",
                          // 입력 시점(pressed 등)
                          "mapping_type": "pressed"
                        },
                        {
                          // 어떤 입력을 받을지
                          "from_button_id": "button.menu_ok",
                          // 어떤 동작을 실행할지
                          "to_button_id": "button.menu_select",
                          // 입력 시점(pressed 등)
                          "mapping_type": "pressed"
                        },
                        {
                          // 어떤 입력을 받을지
                          "from_button_id": "button.menu_cancel",
                          // 어떤 동작을 실행할지
                          "to_button_id": "button.menu_select",
                          // 입력 시점(pressed 등)
                          "mapping_type": "global"
                        }
                      ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "show_search_box",
                          // 계산식/참조 값
                          "source_property_name": "#toggle_state",
                          // 결과가 들어갈 속성
                          "target_property_name": "#enabled"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "search_text_box@common.text_edit_box": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_editbox_enabled": true,
                      // 오버라이드 가능한 변수
                      "$edit_box_indent_size": [ "100%", "100%" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",
                      // 가로/세로 크기
                      "size": [ "440%y", "76%" ],
                      // 오버라이드 가능한 변수
                      "$text_box_name": "serverform_search_text_box",
                      // 오버라이드 가능한 변수
                      "$text_edit_box_content_binding_name": "#serverform_search_text_box_item_name",
                      // 오버라이드 가능한 변수
                      "$text_edit_text_control": "serverform_search_text_box_display_text",
                      // 오버라이드 가능한 변수
                      "$place_holder_control": "rainbowpieui_server_form.search_box_place_holder_control",
                      // 오버라이드 가능한 변수
                      "$place_holder_text": "controller.buttonTip.enterSearch",
                      // 끝에서 다시 처음으로 순환
                      "focus_wrap_enabled": false,
                      // ?? ?? ?
                      "max_length": 32767,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 12,
                      // 조건에 따라 변수 값을 바꾸기
                      "variables": [
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$rainbowpie_localui_backup_screen",
                          // 오버라이드 가능한 변수
                          "$text_edit_text_control": "serverform_search_text_box_display_text2"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "search_button@rainbowpieui_server_form.search_button_toggle_base": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_button_default_alpha": 0.0,
                // 오버라이드 가능한 변수
                "$button_image_size": [ "100%", "100%" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 가로/세로 크기
                "size": [ "100%y", "100%" ],
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": 1000,
                // 오버라이드 가능한 변수
                "$toggle_view_binding_name": "show_search_box",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "show_search_box",
                    // 계산식/참조 값
                    "source_property_name": "(not #toggle_state)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#enabled"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "show_search_box",
                    // 계산식/참조 값
                    "source_property_name": "(not #toggle_state)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "long_form_scrolling_panel@common.scrolling_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$show_background": false,
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$scrolling_content": "rainbowpieui_server_form.long_form_scrolling_content",
    // 오버라이드 가능한 변수
    "$scroll_size": [ 3, "100% - 4px" ],
    // 오버라이드 가능한 변수
    "$scrolling_pane_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$scrolling_pane_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_left_padding_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_right_padding_size": [ 2, 0 ],
    // 보이기/숨기기(공간 유지)
    "visible": true,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "vanilla_serverform",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#is_vanilla_serverform_ui_opened"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not #is_vanilla_serverform_ui_opened)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible",
        // 완전히 제거(공간도 없음)
        "ignored": "(not $rainbowpie_localui_backup_screen)"
      }
    ]
  },

  // ???/?? ??
  "long_form_scrolling_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100% - 4px", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "label_offset_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c + 4px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "label_offset_text@rainbowpie_ui_common.editable_label": {
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // ??? ?? ?
                "text_box_name": "label_offset_text",
                // ??? ?? ?
                "text_control": "label_offset_display_text",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "label_offset_display_text@rainbowpie_ui_common.text_label_notheme": {
                      // ?? (R,G,B,A)
                      "color": "$main_header_text_color",
                      // 기준점에서 이동하는 거리
                      "offset": [ 2, 2 ],
                      // 가로/세로 크기
                      "size": [ "100% - 4px", "default" ],
                      // 보여줄 글자
                      "text": "#form_text"
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 4 ]
        }
      },
      {
        // ???/?? ??
        "wrapping_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "long_form_dynamic_buttons_panel@rainbowpieui_server_form.long_form_dynamic_buttons_panel": {}
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "long_form_dynamic_buttons_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100% - 4px", "100%c" ],
    // 기준점에서 이동하는 거리
    "offset": [ 2, 0 ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",

    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "rainbowpieui_server_form.form_button"
    },

    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
      }
    ]
  },

  // ???/?? ??
  "form_button": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button@common_buttons.light_content_button": {
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100% - 1px" ],
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.form_button_click",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 가로/세로 크기
          "size": [ "100%", 32 ],
          // 오버라이드 가능한 변수
          "$button_content": "rainbowpieui_server_form.form_button_content",
          // 오버라이드 가능한 변수
          "$text_edit_text_control": "serverform_search_text_box_display_text",
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$rainbowpie_localui_backup_screen",
              // 오버라이드 가능한 변수
              "$text_edit_text_control": "serverform_search_text_box_display_text2"
            }
          ],
          // 보이기/숨기기(공간 유지)
          "visible": true,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons",
              // 가져올 값 이름
              "binding_name": "#form_button_text"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('\"' + #hover_text - '\n' - '§0' - '§1' - '§2' - '§3' - '§4' - '§5' - '§6' - '§7' - '§8' - '§9' - '§a' - '§b' - '§c' - '§d' - '§e' - '§f' - '§g' - '§h' - '§i' - '§j' - '§k' - '§l' - '§m' - '§n' - '§o' - '§p' - '§q' - '§r' - '§s' - '§t' - '§u' - '§v' - '§w' - '§x' - '§y' - '§z' + '\"')",
              // 결과가 들어갈 속성
              "target_property_name": "#formatted_text"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "$text_edit_text_control",
              // 계산식/참조 값
              "source_property_name": "#item_name",
              // 결과가 들어갈 속성
              "target_property_name": "#query_text"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#query_text = '') or (not ((#formatted_text - #query_text) = #formatted_text)))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "form_button_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "panel_name": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 34, 34 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "image",
              // ?? ??
              "resolve_sibling_scope": true,
              // 계산식/참조 값
              "source_property_name": "(not (#texture = ''))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ],

          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "image": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 가로/세로 크기
                "size": [ 30, 30 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings":[
                  {
                    // 가져올 값 이름
                    "binding_name": "#form_button_texture",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#form_button_texture_file_system",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture_file_system",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not ((#texture = '') or (#texture = 'loading')))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "progress@progress.progress_loading_bars": {
                // 가로/세로 크기
                "size": [ 30, 4 ],
                // 기준점에서 이동하는 거리
                "offset": [ -2, 16 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings":[
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "image",
                    // ?? ??
                    "resolve_sibling_scope": true,
                    // 계산식/참조 값
                    "source_property_name": "(#texture = 'loading')",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "button_text_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100% - 68px", "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "button_text@rainbowpie_ui_common.text_label_notheme": {
                // 보여줄 글자
                "text": "#form_button_text",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_localui_button_text_color",
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 가로/세로 크기
                "size": [ "default", "default" ],
                // ?? ??
                "text_alignment": "center",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons",
                    // 가져올 값 이름
                    "binding_name": "#form_button_text",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#form_button_text"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

settings_common_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: settings_common_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_settings_common",

   // ???/?? ??
   "driven": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "100%", 1 ],
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_driven_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_driven_alpha",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // ???/?? ??
  "pack_warning_panel_destroy": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 0,
    // ?? ??
    "destroy_at_end": "pack_warning",
    // ?? ??
    "play_event": "rainbowpie.close_pack_warning"
  },

  // ???/?? ??
  "rainbowpie_pack_warning_dialog_alert_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "text_default@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "100% - 8px", "100% - 4px" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_dialog_content_color",
                      // 보여줄 글자
                      "text": "rainbowpie.ui.warning.text.default",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 목록 이름
                          "binding_collection_name": "#selected_pack_items_global",
                          // 가져올 값 이름
                          "binding_name": "#has_errors",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection"
                        },
                        {
                          // 목록 이름
                          "binding_collection_name": "#selected_pack_items_global",
                          // 가져올 값 이름
                          "binding_name": "#has_warnings",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "((not #has_warnings) and (not #has_errors))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "text_error@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "100% - 8px", "100% - 4px" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_dialog_content_color",
                      // 보여줄 글자
                      "text": "rainbowpie.ui.warning.text.error",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 목록 이름
                          "binding_collection_name": "#selected_pack_items_global",
                          // 가져올 값 이름
                          "binding_name": "#has_errors",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection"
                        },
                        {
                          // 목록 이름
                          "binding_collection_name": "#selected_pack_items_global",
                          // 가져올 값 이름
                          "binding_name": "#has_warnings",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "#has_errors",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "text_warning@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "100% - 8px", "100% - 4px" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_dialog_content_color",
                      // 보여줄 글자
                      "text": "rainbowpie.ui.warning.text.warning",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 목록 이름
                          "binding_collection_name": "#selected_pack_items_global",
                          // 가져올 값 이름
                          "binding_name": "#has_errors",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection"
                        },
                        {
                          // 목록 이름
                          "binding_collection_name": "#selected_pack_items_global",
                          // 가져올 값 이름
                          "binding_name": "#has_warnings",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "#has_warnings",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c + 1px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100% + 1px", "100%cm" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "deactivate_input_panel": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 가로/세로 크기
                            "size": [ "50%", "23px" ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 8,
                            // ?? ??
                            "consume_hover_events": false,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "#selected_pack_items_global",
                                // 목록 인덱스/현재 항목 정보 제공
                                "binding_type": "collection_details"
                              }
                            ],
                            // 입력 키/버튼과 동작 연결
                            "button_mappings": [
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_select",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.move_left_global",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // ?? ??
                                "consume_event": false
                              },
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_ok",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.move_left_global",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // ?? ??
                                "consume_event": false
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "exit_settings_input_panel": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 가로/세로 크기
                            "size": [ "50%", "23px" ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 7,
                            // ?? ??
                            "consume_hover_events": false,
                            // 입력 키/버튼과 동작 연결
                            "button_mappings": [
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_select",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.menu_exit",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // ?? ??
                                "consume_event": false
                              },
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_ok",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.menu_exit",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // ?? ??
                                "consume_event": false
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "check_button@common_buttons.light_text_button": {
                            // 오버라이드 가능한 변수
                            "$focus_id": "check_button",
                            // 오버라이드 가능한 변수
                            "$focus_override_down": "deactivate_button",
                            // 오버라이드 가능한 변수
                            "$focus_override_up": "deactivate_button",
                            // 오버라이드 가능한 변수
                            "$focus_override_left": "deactivate_button",
                            // 오버라이드 가능한 변수
                            "$focus_override_right": "deactivate_button",
                            // 오버라이드 가능한 변수
                            "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "button.report_errors_global",
                            // 오버라이드 가능한 변수
                            "$button_text": "rainbowpie.ui.warning.button.check",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "right_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "right_middle",
                            // 가로/세로 크기
                            "size": [ "50%", 23 ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 5,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "#selected_pack_items_global",
                                // 목록 인덱스/현재 항목 정보 제공
                                "binding_type": "collection_details"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "deactivate_button@common_buttons.light_text_button": {
                            // 오버라이드 가능한 변수
                            "$focus_id": "deactivate_button",
                            // 오버라이드 가능한 변수
                            "$focus_override_down": "check_button",
                            // 오버라이드 가능한 변수
                            "$focus_override_up": "check_button",
                            // 오버라이드 가능한 변수
                            "$focus_override_left": "check_button",
                            // 오버라이드 가능한 변수
                            "$focus_override_right": "check_button",
                            // 오버라이드 가능한 변수
                            "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "ranbowpie.move_left_global",
                            // 오버라이드 가능한 변수
                            "$button_text": "rainbowpie.ui.warning.button.deactivate",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 가로/세로 크기
                            "size": [ "50%", 23 ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 5
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "pack_warning_dialog_alert_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "pack_info_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 가로/세로 크기
                      "size": [ "100%", 30 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "pack_icon": {
                            // 이미지 표시
                            "type": "image",
                            // ??? ?? ?
                            "allow_debug_missing_texture": false,
                            // ??? ?? ?
                            "force_texture_reload": true,
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 가로/세로 크기
                            "size": [ "100%y", "100%" ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 4,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "#selected_pack_items_global",
                                // 가져올 값 이름
                                "binding_name": "#icon_path",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#texture",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              },
                              {
                                // 목록 이름
                                "binding_collection_name": "#selected_pack_items_global",
                                // 가져올 값 이름
                                "binding_name": "#icon_zip",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#zip_folder",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              },
                              {
                                // 목록 이름
                                "binding_collection_name": "#selected_pack_items_global",
                                // 가져올 값 이름
                                "binding_name": "#icon_file_system",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#texture_file_system",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "pack_name@rainbowpie_ui_common.text_label": {
                            // 글자 표시
                            "type": "label",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1,
                            // 가로/세로 크기
                            "size": [ "default", 15 ],
                            // ?? ?? ?
                            "max_size": [ "100% - 54px", 15 ],
                            // 기준점에서 이동하는 거리
                            "offset": [ 38, 0 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 보여줄 글자
                            "text": "#pack_name",
                            // ?? ?? ??
                            "font_scale_factor": 1.5,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "#selected_pack_items_global",
                                // 가져올 값 이름
                                "binding_name": "#name",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(((#name - '[PML]') - '[HOTFIX]') - '[UITheme]')",
                                // 결과가 들어갈 속성
                                "target_property_name": "#pack_name"
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "error_text_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 가로/세로 크기
                            "size": [ "100%cm", "100%c" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ -8, 0 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "right_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "right_middle",
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "error_text": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 가로/세로 크기
                                  "size": [ "100%c", 10 ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // ???/?? ??
                                      "glyph_image_panel": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ "50%y", "100%" ],
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // ???/?? ??
                                            "glyph_image": {
                                              // 이미지 표시
                                              "type": "image",
                                              // 가로/세로 크기
                                              "size": [ "100%", "100%" ],
                                              // 기준점에서 이동하는 거리
                                              "offset": [ 0, 1 ],
                                              // 사용할 이미지 경로
                                              "texture": "textures/ui/ErrorGlyph"
                                            }
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "padding_0@common.empty_panel": {
                                        // 가로/세로 크기
                                        "size": [ 1, 0 ]
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "error_number@rainbowpie_ui_common.text_label": {
                                        // 가로/세로 크기
                                        "size": [ "default", "100%" ],
                                        // "font_type": "MinecraftTen",
                                        // "font_scale_factor": 0.8,
                                        "text": "#num_errors",
                                        // ?? (R,G,B,A)
                                        "color": "$error_text_color",
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 가져올 값 이름
                                            "binding_name": "#num_errors",
                                            // 목록 이름
                                            "binding_collection_name": "#selected_pack_items_global",
                                            // 목록 데이터를 반복 연결
                                            "binding_type": "collection"
                                          }
                                        ]
                                      }
                                    }
                                  ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 목록 이름
                                      "binding_collection_name": "#selected_pack_items_global",
                                      // 가져올 값 이름
                                      "binding_name": "#has_errors",
                                      // 가져온 값을 다른 속성으로 연결
                                      "binding_name_override": "#visible",
                                      // 목록 데이터를 반복 연결
                                      "binding_type": "collection"
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "warning_text": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 가로/세로 크기
                                  "size": [ "100%c", 10 ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // ???/?? ??
                                      "glyph_image_panel": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ "50%y", "100%" ],
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // ???/?? ??
                                            "glyph_image": {
                                              // 이미지 표시
                                              "type": "image",
                                              // 가로/세로 크기
                                              "size": [ "100%", "100%" ],
                                              // 기준점에서 이동하는 거리
                                              "offset": [ 0, 1 ],
                                              // 사용할 이미지 경로
                                              "texture": "textures/ui/WarningGlyph"
                                            }
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "padding_0@common.empty_panel": {
                                        // 가로/세로 크기
                                        "size": [ 1, 0 ]
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "warning_number@rainbowpie_ui_common.text_label": {
                                        // 가로/세로 크기
                                        "size": [ "default", "100%" ],
                                        // 보여줄 글자
                                        "text": "#num_warnings",
                                        // ?? (R,G,B,A)
                                        "color": "$warning_text_color",
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 가져올 값 이름
                                            "binding_name": "#num_warnings",
                                            // 목록 이름
                                            "binding_collection_name": "#selected_pack_items_global",
                                            // 목록 데이터를 반복 연결
                                            "binding_type": "collection"
                                          }
                                        ]
                                      }
                                    }
                                  ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 목록 이름
                                      "binding_collection_name": "#selected_pack_items_global",
                                      // 가져올 값 이름
                                      "binding_name": "#has_warnings",
                                      // 가져온 값을 다른 속성으로 연결
                                      "binding_name_override": "#visible",
                                      // 목록 데이터를 반복 연결
                                      "binding_type": "collection"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "content_text@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "100% - 8px", "100% - 34px" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 32 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_dialog_content_color",
                      // 보여줄 글자
                      "text": "rainbowpie.ui.warning.3rdparty.text"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c + 1px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100% + 1px", "100%cm" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "deactivate_input_panel": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 가로/세로 크기
                            "size": [ "50%", "23px" ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 8,
                            // ?? ??
                            "consume_hover_events": false,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "#selected_pack_items_global",
                                // 목록 인덱스/현재 항목 정보 제공
                                "binding_type": "collection_details"
                              }
                            ],
                            // 입력 키/버튼과 동작 연결
                            "button_mappings": [
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_select",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.move_left_global",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // ?? ??
                                "consume_event": false
                              },
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_ok",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.move_left_global",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // ?? ??
                                "consume_event": false
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "exit_settings_input_panel": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 가로/세로 크기
                            "size": [ "50%", "23px" ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 7,
                            // ?? ??
                            "consume_hover_events": false,
                            // 입력 키/버튼과 동작 연결
                            "button_mappings": [
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_select",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.menu_exit",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // ?? ??
                                "consume_event": false
                              },
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_ok",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.menu_exit",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed",
                                // ?? ??
                                "consume_event": false
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "check_button@common_buttons.light_text_button": {
                            // 오버라이드 가능한 변수
                            "$focus_id": "check_button",
                            // 오버라이드 가능한 변수
                            "$focus_override_down": "deactivate_button",
                            // 오버라이드 가능한 변수
                            "$focus_override_up": "deactivate_button",
                            // 오버라이드 가능한 변수
                            "$focus_override_left": "deactivate_button",
                            // 오버라이드 가능한 변수
                            "$focus_override_right": "deactivate_button",
                            // 오버라이드 가능한 변수
                            "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "button.report_errors_global",
                            // 오버라이드 가능한 변수
                            "$button_text": "rainbowpie.ui.warning.button.check",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "right_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "right_middle",
                            // 가로/세로 크기
                            "size": [ "50%", 23 ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 5,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 이름
                                "binding_collection_name": "#selected_pack_items_global",
                                // 목록 인덱스/현재 항목 정보 제공
                                "binding_type": "collection_details"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "deactivate_button@common_buttons.light_text_button": {
                            // 오버라이드 가능한 변수
                            "$focus_id": "deactivate_button",
                            // 오버라이드 가능한 변수
                            "$focus_override_down": "check_button",
                            // 오버라이드 가능한 변수
                            "$focus_override_up": "check_button",
                            // 오버라이드 가능한 변수
                            "$focus_override_left": "check_button",
                            // 오버라이드 가능한 변수
                            "$focus_override_right": "check_button",
                            // 오버라이드 가능한 변수
                            "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "ranbowpie.move_left_global",
                            // 오버라이드 가능한 변수
                            "$button_text": "rainbowpie.ui.warning.button.deactivate",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 가로/세로 크기
                            "size": [ "50%", 23 ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 5
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "pack_warning_status_check": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "modal_input@common.input_panel": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 100,
          // 보이기/숨기기(공간 유지)
          "visible": true,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "rainbowpie_pack_warning_dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
                // 가로/세로 크기
                "size": [ 204, 132 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 100,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title": "$mintui_pack_name",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialog_content": "rainbowpieui_settings_common.rainbowpie_pack_warning_dialog_alert_content",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialog_show_background": false,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_show_close": true,
                // 오버라이드 가능한 변수
                "$close_button_to_button_id": "rainbowpie.close_pack_warning",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#name",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "#selected_pack_items_global"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#description",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "#selected_pack_items_global"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "((#name = $mintui_pack_name) and (#description = $mintui_pack_description))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pack_warning_dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
                // 가로/세로 크기
                "size": [ 204, 132 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 100,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title": "rainbowpie.ui.warning.3rdparty.title",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialog_content": "rainbowpieui_settings_common.pack_warning_dialog_alert_content",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialog_show_background": false,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_show_close": true,
                // 오버라이드 가능한 변수
                "$close_button_to_button_id": "rainbowpie.close_pack_warning",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#name",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "#selected_pack_items_global"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#description",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "#selected_pack_items_global"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not ((#name = $mintui_pack_name) and (#description = $mintui_pack_description)))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background2@rainbowpie_popup_dialog.background_panel_design2": {}
            }
          ],
          // 입력 키/버튼과 동작 연결
          "button_mappings": [
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_select",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_select",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_secondary_select",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_secondary_select",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_ok",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_ok",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_cancel",
              // 어떤 동작을 실행할지
              "to_button_id": "rainbowpie.close_pack_warning",
              // 입력 시점(pressed 등)
              "mapping_type": "global"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_up",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_up",
              // 입력 시점(pressed 등)
              "mapping_type": "global",
              // ?? ??
              "scope": "view"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_down",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_down",
              // 입력 시점(pressed 등)
              "mapping_type": "global",
              // ?? ??
              "scope": "view"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_left",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_left",
              // 입력 시점(pressed 등)
              "mapping_type": "global",
              // ?? ??
              "scope": "view"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_right",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_right",
              // 입력 시점(pressed 등)
              "mapping_type": "global",
              // ?? ??
              "scope": "view"
            }
          ]
        }
      }
    ],
    // 이 컨트롤 안에서 쓰는 임시 저장소
    "property_bag": {
      // ???/??? ?
      "#pack_warning_visible": true
    },
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#name",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "#selected_pack_items_global"
      },
      {
        // 가져올 값 이름
        "binding_name": "#description",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "#selected_pack_items_global"
      },
      {
        // 목록 이름
        "binding_collection_name": "#selected_pack_items_global",
        // 가져올 값 이름
        "binding_name": "#has_errors",
        // 목록 데이터를 반복 연결
        "binding_type": "collection"
      },
      {
        // 목록 이름
        "binding_collection_name": "#selected_pack_items_global",
        // 가져올 값 이름
        "binding_name": "#has_warnings",
        // 목록 데이터를 반복 연결
        "binding_type": "collection"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#has_warnings or #has_errors)",
        // 결과가 들어갈 속성
        "target_property_name": "#pack_warning_visible",
        // 완전히 제거(공간도 없음)
        "ignored": "$rainbowpie_ui_debug_errcheck_debug"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#name = $mintui_pack_name) and (#description = $mintui_pack_description))",
        // 결과가 들어갈 속성
        "target_property_name": "#is_rainbowpie_pack"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#is_rainbowpie_pack and #pack_warning_visible) or (not #is_rainbowpie_pack and #has_errors))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "settings_overlay_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "pack_warning": {
          // 보이기/숨기기(공간 유지)
          "visible": "($is_packs_enabled and $include_controls_and_settings_sections)",
          // 완전히 제거(공간도 없음)
          "ignored": "((not $is_pregame) or (not $rainbowpie_ui_flag_135972c6))",
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 애니메이션 목록
          "anims": [
            "@rainbowpieui_settings_common.pack_warning_panel_destroy"
          ],
          // 목록 이름
          "collection_name": "#selected_pack_items_global",
          // 목록 아이템을 자동으로 생성
          "factory": {
            // ?? ??
            "name": "selected_pack_factory",
            // ??? ???
            "control_name": "rainbowpieui_settings_common.pack_warning_status_check"
          },
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#selected_grid_dimensions_global",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#collection_length"
            },
            {
              // 가져올 값 이름
              "binding_name": "#selected_pack_items_global"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "settings_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_feature_markbest",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_toggle_enabled": true,
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_sliderbar_enabled": true,
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_editbox_enabled": true
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "header@rainbowpie_ui_common.screen_header": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_ingame_anim1": "($rainbowpie_ui_flag_8dcce82d and $rainbowpie_ui_flag_fbadd01f and $is_pregame)",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_title": "#dialog_title",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_title_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#dialog_title"
            }
          ],
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_content_panel": "rainbowpieui_settings_common.header_controls_panel"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "blur_layer@mintui_background.background_blur": {
          // 완전히 제거(공간도 없음)
          "ignored": "$rainbowpie_ui_flag_3e35fb2e",
          // 오버라이드 가능한 변수
          "$background_offset": [ "-62%", 20 ],
          // 오버라이드 가능한 변수
          "$background_children_offset": [ "62%", -20 ],
          // 오버라이드 가능한 변수
          "$background_layer": -3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "mask_layer@mintui_background.background_mask": {
          // 완전히 제거(공간도 없음)
          "ignored": "$rainbowpie_ui_flag_3e35fb2e",
          // 오버라이드 가능한 변수
          "$background_offset": [ "-62%", 20 ],
          // 오버라이드 가능한 변수
          "$background_children_offset": [ "62%", -20 ],
          // 오버라이드 가능한 변수
          "$background_layer": -3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background_blur@mintui_background.background_blur_fullscreen": {
          // 완전히 제거(공간도 없음)
          "ignored": "((not $is_pregame) or (not $rainbowpie_ui_flag_3e35fb2e))",
          // 오버라이드 가능한 변수
          "$background_mask": false,
          // 겹치는 순서(숫자 클수록 위)
          "layer": -3
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_ingame_anim1": "($rainbowpie_ui_flag_8dcce82d and $rainbowpie_ui_flag_fbadd01f and $is_pregame)",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "selector_background@rainbowpie_ui_common.text_background": {
                // 완전히 제거(공간도 없음)
                "ignored": "$rainbowpie_ui_flag_71042f58",
                // 보이기/숨기기(공간 유지)
                "visible": "((not $is_pregame) or (not $rainbowpie_ui_feature_background_blur))",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_left",
                // 가로/세로 크기
                "size": [ "38%", "100% - 20px" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_background@rainbowpie_ui_common.global_background": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_right",
                // 가로/세로 크기
                "size": [ "62%", "100% - 20px" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // ???
                "alpha": "$rainbowpie_localui_this_alpha",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_this_alpha": "$rainbowpie_ui_theme_global_background_alpha",
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$is_pregame",
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_this_alpha": 0.5
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "selector_area@settings_common.selector_area": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_scrollbar_enabled": true
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_area@settings_common.content_area": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_scrollbar_enabled": true
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "header_controls_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_settings_header_extra_controls|default": "common.empty_panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "section_title_label@rainbowpieui_settings_common.section_title_label": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "copy_and_delete_button@rainbowpieui_settings_common.copy_and_delete_button": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // ???/?? ??
  "icon_delete": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 16, 16 ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/settings/world_edit/delete')",
    // ?? (R,G,B,A)
    "color": "$text_color"
  },

  // ???/?? ??
  "icon_copy": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 12, 12 ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/settings/world_edit/copy')",
    // ?? (R,G,B,A)
    "color": "$text_color"
  },

  // ???/?? ??
  "copy_and_delete_button": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 기준점(어디에서 시작할지)
    "anchor_from": "right_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "right_middle",
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // 보이기/숨기기(공간 유지)
    "visible": "$is_world_edit",
    // 완전히 제거(공간도 없음)
    "ignored": "$include_controls_and_settings_sections",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "copy_button@common_buttons.light_content_button": {
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "copy_world_button",
          // 오버라이드 가능한 변수
          "$button_content": "rainbowpieui_settings_common.icon_copy",
          // 가로/세로 크기
          "size": [ "100%y", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "delete_button@common_buttons.light_content_button": {
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "delete_world_button",
          // 오버라이드 가능한 변수
          "$button_content": "rainbowpieui_settings_common.icon_delete",
          // 가로/세로 크기
          "size": [ "100%y", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "section_title_label@rainbowpie_ui_common.text_label_notheme": {
    // 기준점(어디에서 시작할지)
    "anchor_from": "right_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "right_middle",
    // 가로/세로 크기
    "size": [ "62%", "default" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_topbar_text_color",
    // 보여줄 글자
    "text": "#section_title",
    // ?? ??
    "text_alignment": "center",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#section_title"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_option_toggle_state_template@settings_common.option_toggle_state_template": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_size|default": [ 30, 16 ],
    // 가로/세로 크기
    "size": "$rainbowpie_localui_toggle_size",
    // 기준점(어디에서 시작할지)
    "anchor_from": "$rainbowpie_localui_toggle_anchor",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "$rainbowpie_localui_toggle_anchor",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_color": [],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_alpha": 1.0,

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_anchor|default": "left_middle",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_state_text|default": "OFF",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_state_text_on|default": "ON",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_state_color|default": [ 1.0, 0.333, 0.333 ],

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_state": false,

    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_localui_button_color",
    // ???
    "alpha": "$rainbowpie_localui_button_alpha",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "state_text@rainbowpie_ui_common.text_label_notheme": {
          // 보여줄 글자
          "text": "$rainbowpie_localui_state_text",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_state_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$rainbowpie_localui_toggle_state",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_state_text": "$rainbowpie_localui_state_text_on",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_state_color": [ 0.333, 1.0, 0.333 ]
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_option_toggle_on@rainbowpieui_settings_common.rainbowpie_ui_option_toggle_state_template": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_state": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_color": "$rainbowpie_ui_theme_button_background_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_alpha": "$rainbowpie_ui_theme_button_background_default_alpha"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_option_toggle_off@rainbowpieui_settings_common.rainbowpie_ui_option_toggle_state_template": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_color": "$rainbowpie_ui_theme_button_background_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_alpha": "$rainbowpie_ui_theme_button_background_default_alpha"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_option_toggle_on_hover@rainbowpieui_settings_common.rainbowpie_ui_option_toggle_state_template": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_state": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_color": "$rainbowpie_ui_theme_button_background_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_alpha": "$rainbowpie_ui_theme_button_background_hover_alpha"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_option_toggle_off_hover@rainbowpieui_settings_common.rainbowpie_ui_option_toggle_state_template": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_color": "$rainbowpie_ui_theme_button_background_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_alpha": "$rainbowpie_ui_theme_button_background_hover_alpha"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_option_toggle_on_locked@rainbowpieui_settings_common.rainbowpie_ui_option_toggle_state_template": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_state": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_color": "$rainbowpie_ui_theme_button_background_locked_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_alpha": "$rainbowpie_ui_theme_button_background_locked_alpha"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_option_toggle_off_locked@rainbowpieui_settings_common.rainbowpie_ui_option_toggle_state_template": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_color": "$rainbowpie_ui_theme_button_background_locked_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_alpha": "$rainbowpie_ui_theme_button_background_locked_alpha"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_toggle_unchecked@rainbowpieui_settings_common.rainbowpie_ui_toggle_button": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_default_color|default": "$rainbowpie_ui_theme_toggle_text_default_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_hover_color|default": "$rainbowpie_ui_theme_toggle_text_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_pressed_color|default": "$rainbowpie_ui_theme_toggle_text_unchecked_hover_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_alpha",
    // Button State
    "$default_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_toggle_checked@rainbowpieui_settings_common.rainbowpie_ui_toggle_button": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_default_color|default": "$rainbowpie_ui_theme_toggle_text_checked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_hover_color|default": "$rainbowpie_ui_theme_toggle_text_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_pressed_color|default": "$rainbowpie_ui_theme_toggle_text_checked_hover_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color|default": "$rainbowpie_ui_theme_toggle_background_checked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_alpha",
    // Button State
    "$default_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_toggle_unchecked_hover@rainbowpieui_settings_common.rainbowpie_ui_toggle_button": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_default_color|default": "$rainbowpie_ui_theme_toggle_text_default_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_hover_color|default": "$rainbowpie_ui_theme_toggle_text_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_pressed_color|default": "$rainbowpie_ui_theme_toggle_text_unchecked_hover_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_alpha",
    // Button State
    "$hover_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_toggle_checked_hover@rainbowpieui_settings_common.rainbowpie_ui_toggle_button": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_default_color|default": "$rainbowpie_ui_theme_toggle_text_checked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_hover_color|default": "$rainbowpie_ui_theme_toggle_text_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_pressed_color|default": "$rainbowpie_ui_theme_toggle_text_checked_hover_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color|default": "$rainbowpie_ui_theme_toggle_background_checked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_alpha",
    // Button State
    "$hover_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_toggle_unchecked_locked@rainbowpieui_settings_common.rainbowpie_ui_toggle_button": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_color": "$rainbowpie_ui_theme_toggle_text_locked_checked_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_color|default": "$rainbowpie_ui_theme_toggle_background_locked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_alpha|default": "$rainbowpie_ui_theme_toggle_background_locked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_alpha",
    // Button State
    "$locked_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_toggle_checked_locked@rainbowpieui_settings_common.rainbowpie_ui_toggle_button": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_color": "$rainbowpie_ui_theme_toggle_text_locked_checked_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_color|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_btbar_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_alpha|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_btbar_alpha",
    // Button State
    "$locked_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_toggle_button@rainbowpie_ui_button.rainbowpie_ui_button_default": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": [],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": 1.0,
    // 오버라이드 가능한 변수
    "$check_state|default": false,
    // 오버라이드 가능한 변수
    "$button_image_size|default": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_controls": [
      {
        // ???/?? ??
        "button_glint": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$button_image_size",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_99d9851a)",
          // 보이기/숨기기(공간 유지)
          "visible": "$button_image_visible",
          // 겹치는 순서(숫자 클수록 위)
          "layer": "$rainbowpie_localui_button_hover_border_layer",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hover@rainbowpie_ui_button.glint_border_base": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_glint_size": [ 72, 72 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_glint_alpha": 0.25,
                // 완전히 제거(공간도 없음)
                "ignored": "(not $hover_state)",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 겹치는 순서(숫자 클수록 위)
                "layer": "($rainbowpie_localui_button_hover_border_layer - ($rainbowpie_localui_button_hover_border_layer * 2))"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "button_background": {
          // 이미지 표시
          "type": "image",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $button_image_visible)",
          // 가로/세로 크기
          "size": "$button_image_size",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_button_color",
          // ???
          "alpha": "$rainbowpie_localui_button_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "left_image": {
          // 이미지 표시
          "type": "image",
          // 보이기/숨기기(공간 유지)
          "visible": "$check_state",
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": [ 2, "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_toggle_btbar_color",
          // ???
          "alpha": "$rainbowpie_localui_toggle_btbar_alpha"
        }
      },
      {
        // ???/?? ??
        "button_content": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 오버라이드 가능한 변수
          "$button_content_size|default": [ "100% - 6px", "100% - 6px" ],
          // 가로/세로 크기
          "size": "$button_content_size",

          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "$button_type_panel@$button_type_panel": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_dropdown_radio_visuals_unchecked@rainbowpieui_settings_common.rainbowpie_ui_dropdown_radio_visuals": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_default_color|default": "$rainbowpie_ui_theme_toggle_text_default_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_hover_color|default": "$rainbowpie_ui_theme_toggle_text_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_pressed_color|default": "$rainbowpie_ui_theme_toggle_text_unchecked_hover_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_alpha",
    // Button State
    "$default_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_dropdown_radio_visuals_checked@rainbowpieui_settings_common.rainbowpie_ui_dropdown_radio_visuals": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_default_color|default": "$rainbowpie_ui_theme_toggle_text_checked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_hover_color|default": "$rainbowpie_ui_theme_toggle_text_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_pressed_color|default": "$rainbowpie_ui_theme_toggle_text_checked_hover_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color|default": "$rainbowpie_ui_theme_toggle_background_checked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_alpha",
    // Button State
    "$default_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_dropdown_radio_visuals_unchecked_hover@rainbowpieui_settings_common.rainbowpie_ui_dropdown_radio_visuals": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_default_color|default": "$rainbowpie_ui_theme_toggle_text_default_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_hover_color|default": "$rainbowpie_ui_theme_toggle_text_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_pressed_color|default": "$rainbowpie_ui_theme_toggle_text_unchecked_hover_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_alpha",
    // Button State
    "$hover_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_dropdown_radio_visuals_checked_hover@rainbowpieui_settings_common.rainbowpie_ui_dropdown_radio_visuals": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_default_color|default": "$rainbowpie_ui_theme_toggle_text_checked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_hover_color|default": "$rainbowpie_ui_theme_toggle_text_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_pressed_color|default": "$rainbowpie_ui_theme_toggle_text_checked_hover_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color|default": "$rainbowpie_ui_theme_toggle_background_checked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_alpha",
    // Button State
    "$hover_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_dropdown_radio_visuals_unchecked_locked@rainbowpieui_settings_common.rainbowpie_ui_dropdown_radio_visuals": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_color": "$rainbowpie_ui_theme_toggle_text_locked_checked_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_color|default": "$rainbowpie_ui_theme_toggle_background_locked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_alpha|default": "$rainbowpie_ui_theme_toggle_background_locked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_alpha",
    // Button State
    "$locked_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_dropdown_radio_visuals_checked_locked@rainbowpieui_settings_common.rainbowpie_ui_dropdown_radio_visuals": {
    // Rainbow Pie UI Variables
    "$rainbowpie_localui_button_text_color": "$rainbowpie_ui_theme_toggle_text_locked_checked_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_color|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_btbar_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_locked_alpha|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_btbar_alpha",
    // Button State
    "$locked_state": true,
    // 오버라이드 가능한 변수
    "$check_state": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_dropdown_radio_visuals@rainbowpie_ui_button.rainbowpie_ui_button_default": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_color|default": [],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_btbar_alpha|default": 1.0,
    // 오버라이드 가능한 변수
    "$check_state|default": false,
    // 오버라이드 가능한 변수
    "$hover_state|default": false,
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_radio_image|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_radio_image_texture|default": "",
    // 오버라이드 가능한 변수
    "$radio_label_bindings|default": [],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_controls": [
      {
        // ???/?? ??
        "button_glint": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$button_image_size",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_99d9851a)",
          // 보이기/숨기기(공간 유지)
          "visible": "$button_image_visible",
          // 겹치는 순서(숫자 클수록 위)
          "layer": "$rainbowpie_localui_button_hover_border_layer",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hover@rainbowpie_ui_button.glint_border_base": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_glint_size": [ 72, 72 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_glint_alpha": 0.25,
                // 완전히 제거(공간도 없음)
                "ignored": "(not $hover_state)",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 겹치는 순서(숫자 클수록 위)
                "layer": "($rainbowpie_localui_button_hover_border_layer - ($rainbowpie_localui_button_hover_border_layer * 2))"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "button_background": {
          // 이미지 표시
          "type": "image",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $button_image_visible)",
          // 가로/세로 크기
          "size": "$button_image_size",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_button_color",
          // ???
          "alpha": "$rainbowpie_localui_button_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "bottom_image": {
          // 이미지 표시
          "type": "image",
          // 보이기/숨기기(공간 유지)
          "visible": "($check_state or ($hover_state and $game_pad))",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": [ "100%", 2 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_toggle_btbar_color",
          // ???
          "alpha": "$rainbowpie_localui_toggle_btbar_alpha"
        }
      },
      {
        // ???/?? ??
        "button_content": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 오버라이드 가능한 변수
          "$button_content_size|default": [ "100% - 6px", "100% - 6px" ],
          // 가로/세로 크기
          "size": "$button_content_size",

          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "icon_image": {
                // 보이기/숨기기(공간 유지)
                "visible": "$rainbowpie_localui_dropdown_radio_image",
                // 이미지 표시
                "type": "image",
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_localui_button_text_color",
                // 사용할 이미지 경로
                "texture": "$rainbowpie_localui_dropdown_radio_image_texture",
                // 가로/세로 크기
                "size": [ 16, 16 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "radio_label@rainbowpie_ui_common.text_label_notheme": {
                // 완전히 제거(공간도 없음)
                "ignored": "$rainbowpie_localui_dropdown_radio_image",
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // ?? ??
                "text_alignment": "center",
                // 보여줄 글자
                "text": "$radio_label_text",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_localui_button_text_color",
                // 가로/세로 크기
                "size": [ "100%", "default" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": "$radio_label_bindings",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "rainbowpie_ui_radio_with_label": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content_item_size|default": [ "fill", "default" ],
    // 가로/세로 크기
    "size": "$rainbowpie_localui_dropdown_content_item_size",
    // 오버라이드 가능한 변수
    "$enabled|default": true,
    // 오버라이드 가능한 변수
    "$toggle_state_binding_name|default": "none",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "rainbowpie_ui_radio_with_label_core@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label_core": {} }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "rainbowpie_ui_radio_with_label_core@common.radio_toggle": {
    // 오버라이드 가능한 변수
    "$focus_override_down": "",
    // 오버라이드 가능한 변수
    "$focus_override_up": "",
    // 오버라이드 가능한 변수
    "$focus_override_left": "",
    // 오버라이드 가능한 변수
    "$focus_override_right": "",
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpieui_settings_common.rainbowpie_ui_dropdown_radio_visuals_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpieui_settings_common.rainbowpie_ui_dropdown_radio_visuals_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_dropdown_radio_visuals_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_dropdown_radio_visuals_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_dropdown_radio_visuals_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_dropdown_radio_visuals_unchecked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_dropdown_radio_visuals_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_dropdown_radio_visuals_checked_locked",
    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name|default": "$toggle_state_binding_name",
    // 오버라이드 가능한 변수
    "$toggle_enabled_binding_name": "$option_enabled_binding_name",

    // ??/???
    "enabled": "$enabled",
    // 오버라이드 가능한 변수
    "$toggle_enabled_binding_type": "global",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "(not $option_enabled_binding_name or not $enabled)",
        // 오버라이드 가능한 변수
        "$toggle_enabled_binding_name": "#not_data_bound",
        // 오버라이드 가능한 변수
        "$toggle_enabled_binding_type": "none"
      }
    ]
  }
}

sidebar_navigation_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: sidebar_navigation_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_sidebar_navigation",

  // ???/?? ??
  "sidebar_and_blur_background_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // ?? ????
    "clips_children": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "simple_sidebar_background_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "background_overlay": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ 32, "100%" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // ?? (R,G,B,A)
                "color": "$color",
                // ???
                "alpha": "$alpha",
                // 오버라이드 가능한 변수
                "$color|default": [ 0.0, 0.0, 0.0 ],
                // 오버라이드 가능한 변수
                "$alpha|default": 0.3,
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "(not $rainbowpie_ui_feature_background_blur and $is_pregame)",
                    // 오버라이드 가능한 변수
                    "$color": "$rainbowpie_ui_theme_sidebar_oqaque_background_color",
                    // 오버라이드 가능한 변수
                    "$alpha": "$rainbowpie_ui_theme_sidebar_oqaque_background_alpha"
                  },
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "($rainbowpie_ui_feature_background_blur and $is_pregame)",
                    // 오버라이드 가능한 변수
                    "$color": "$rainbowpie_ui_theme_sidebar_background_color",
                    // 오버라이드 가능한 변수
                    "$alpha": "$rainbowpie_ui_theme_sidebar_background_alpha"
                  },
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "(not $is_pregame)",
                    // 오버라이드 가능한 변수
                    "$color": "$rainbowpie_ui_theme_sidebar_oqaque_background_color",
                    // 오버라이드 가능한 변수
                    "$alpha": "$rainbowpie_ui_theme_sidebar_oqaque_background_alpha"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "blur_layer@mintui_background.background_blur": {
                // 가로/세로 크기
                "size": [ "100%", "100% + 20px" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 오버라이드 가능한 변수
                "$background_offset": [ "-100% + 32px", 0 ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ "100% - 32px", 0 ],
                // 오버라이드 가능한 변수
                "$background_layer": 1
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "mask_layer@mintui_background.background_mask": {
                // 가로/세로 크기
                "size": [ "100%", "100% + 20px" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 오버라이드 가능한 변수
                "$background_offset": [ "-100% + 32px", 0 ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ "100% - 32px", 0 ],
                // 오버라이드 가능한 변수
                "$background_layer": 1
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#is_simple_sidebar_state_active",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "verbose_sidebar_background_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "background_overlay": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "142px", "100%" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // ?? (R,G,B,A)
                "color": "$color",
                // ???
                "alpha": "$alpha",
                // 오버라이드 가능한 변수
                "$color|default": [ 0.0, 0.0, 0.0 ],
                // 오버라이드 가능한 변수
                "$alpha|default": 0.3,
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "(not $rainbowpie_ui_feature_background_blur and $is_pregame)",
                    // 오버라이드 가능한 변수
                    "$color": "$rainbowpie_ui_theme_sidebar_verbose_oqaque_background_color",
                    // 오버라이드 가능한 변수
                    "$alpha": "$rainbowpie_ui_theme_sidebar_verbose_oqaque_background_alpha"
                  },
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "($rainbowpie_ui_feature_background_blur and $is_pregame)",
                    // 오버라이드 가능한 변수
                    "$color": "$rainbowpie_ui_theme_sidebar_verbose_background_color",
                    // 오버라이드 가능한 변수
                    "$alpha": "$rainbowpie_ui_theme_sidebar_verbose_background_alpha"
                  },
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "(not $is_pregame)",
                    // 오버라이드 가능한 변수
                    "$color": "$rainbowpie_ui_theme_sidebar_verbose_oqaque_background_color",
                    // 오버라이드 가능한 변수
                    "$alpha": "$rainbowpie_ui_theme_sidebar_verbose_oqaque_background_alpha"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "blur_layer@mintui_background.background_blur": {
                // 가로/세로 크기
                "size": [ "100%", "100% + 20px" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 오버라이드 가능한 변수
                "$background_offset": [ "-100% + 142px", 0 ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ "100% - 142px", 0 ],
                // 오버라이드 가능한 변수
                "$background_layer": -4
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "mask_layer@mintui_background.background_mask": {
                // 가로/세로 크기
                "size": [ "100%", "100% + 20px" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 오버라이드 가능한 변수
                "$background_offset": [ "-100% + 142px", 0 ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ "100% - 142px", 0 ],
                // 오버라이드 가능한 변수
                "$background_layer": -4
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "(not #is_simple_sidebar_state_active)",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  }
}

sign_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: sign_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_sign",

  // ???/?? ??
  "sign_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_ingame_anim1": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "sign_screen_content@sign.sign_screen_content": {
                // 완전히 제거(공간도 없음)
                "ignored": "($rainbowpie_ui_flag_sign_edit_preview_enabled)"
              }
            },
            {
              // ???/?? ??
              "sign_edit_preview_screen_content": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_flag_sign_edit_preview_enabled)",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "maximized_input_dialog@rainbowpieui_sign.maximized_input_dialog": {} },
                  { "sign_preview_panel@rainbowpieui_sign.sign_preview_panel": {} },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "exit_menu_input_panel@common.input_panel": {
                      // 입력 키/버튼과 동작 연결
                      "button_mappings": [
                        {
                          // 어떤 입력을 받을지
                          "from_button_id": "button.menu_cancel",
                          // 어떤 동작을 실행할지
                          "to_button_id": "button.menu_exit",
                          // 입력 시점(pressed 등)
                          "mapping_type": "global"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "sign_background": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "$sign_texture",
    // 가로/세로 크기
    "size": [ 94.08, 45.57 ],
    // 기준점에서 이동하는 거리
    "offset": [ -0.49, -1.15 ]
  },

  // ???/?? ??
  "hanging_sign_background": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "$sign_texture",
    // 가로/세로 크기
    "size": [ 146.37, 72.93 ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, -15.16 ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "regular_sign_text_multiline@sign.base_sign_text_multiline": {
    // 가로/세로 크기
    "size": [ 90.65, 44.1 ], // * 0.49
    // 오버라이드 가능한 변수
    "$text_background_default": "rainbowpieui_sign.sign_background",
    // 오버라이드 가능한 변수
    "$text_background_hover": "rainbowpieui_sign.sign_background"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "hanging_sign_text_multiline@sign.base_sign_text_multiline": {
    // 가로/세로 크기
    "size": [ 64.26, 45.9 ], // * 0.51
    // 오버라이드 가능한 변수
    "$text_background_default": "rainbowpieui_sign.hanging_sign_background",
    // 오버라이드 가능한 변수
    "$text_background_hover": "rainbowpieui_sign.hanging_sign_background"
  },

  // ???/?? ??
  "sign_preview_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 96, 48 ],
    // 기준점에서 이동하는 거리
    "offset": [ -78, 0 ],
    // 오버라이드 가능한 변수
    "$sign_preview_panel_control": "('rainbowpieui_' + $sign_text_multiline)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "text_edit@$sign_preview_panel_control": {
          // 오버라이드 가능한 변수
          "$font_size": "normal",
          // ?? ??
          "selected": false,
          // 포커스 가능 여부
          "focus_enabled": false,
          // ?? ??
          "consume_event": false
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "maximized_input_dialog@rainbowpie_ui_dialog.dialog_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dialog_content": "rainbowpieui_sign.maximized_input_dialog_content",
    // 가로/세로 크기
    "size": [ 160, 130 ],
    // 기준점에서 이동하는 거리
    "offset": [ 54, 0 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 110,
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      // 我也不知道下面这段代码是如何运作的
      {
        // 이 조건이 맞으면 적용
        "requires": "($sign_text_multiline = 'sign.regular_sign_text_multiline')",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_dialogheader_title": "(('item.' + (($sign_texture - 'textures/ui/') - 'sign_' - '_sign') + '_sign.name') - 'sign_')"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "($sign_text_multiline = 'sign.hanging_sign_text_multiline')",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_dialogheader_title": "((((('item.' + (($sign_texture - 'textures/ui/hanging_sign_') - 'darkoak') + '.___..dark_oak' + '__._oak_hanging_sign.name') - '..___.') - '.___..dark_oak') - 'textures/ui/hanging_sign__._') - '_._oak_')"
      }
    ]
  },

  // ???/?? ??
  "maximized_input_dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "sign_text_multiline@common.multiline_text_edit_box": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_editbox_enabled": true,
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // ?? ??
          "selected": true,
          // ?? ??
          "can_be_deselected": false,
          // 오버라이드 가능한 변수
          "$text_box_name": "#sign_text_multi",
          // ?? ?? ?
          "max_length": 32500,
          // 오버라이드 가능한 변수
          "$text_edit_box_content_binding_name": "#sign_text"
        }
      }
    ]
  }
}

smithing_table_2_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: smithing_table_2_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_smithing_table_2",

  // ???/?? ??
  "smithing_preview_turn_back_anim": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_quart",
    // 걸리는 시간(초)
    "duration": 0.35,
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ "-50%x", 0 ],
    // ?? ??
    "play_event": "rainbowpie.smithing_preview_turn_back"
  },

  // ???/?? ??
  "smithing_preview_turn_front_anim": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_quart",
    // 걸리는 시간(초)
    "duration": 0.35,
    // 시작 값
    "from": [ "-50%x", 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "rainbowpie.smithing_preview_turn_front"
  },

  // ???/?? ??
  "smithing_preview_reset_anim": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0,
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 0 ]
  },

  // ???/?? ??
  "turn_front_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/chevron_left",
    // 가로/세로 크기
    "size": [ "88.88888888888889%", "88.88888888888889%" ],
    // ?? (R,G,B,A)
    "color": "$text_color"
  },

  // ???/?? ??
  "turn_back_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/chevron_right",
    // 가로/세로 크기
    "size": [ "88.88888888888889%", "88.88888888888889%" ],
    // ?? (R,G,B,A)
    "color": "$text_color"
  },

  // ???/?? ??
  "result_item_preview": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // Base Size: 18x18
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "turn_front@common_buttons.light_content_button": {
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "rainbowpie.smithing_preview_turn_front",
          // 오버라이드 가능한 변수
          "$button_content": "rainbowpieui_smithing_table_2.turn_front_icon",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 가로/세로 크기
          "size": [ "66.66666666666667%", "100%x" ], // 12x12
          // 기준점에서 이동하는 거리
          "offset": [ "-116.6666666666667%x", "16.66666666666667%y" ] //-14x2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "turn_back@common_buttons.light_content_button": {
          // 오버라이드 가능한 변수
          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "rainbowpie.smithing_preview_turn_back",
          // 오버라이드 가능한 변수
          "$button_content": "rainbowpieui_smithing_table_2.turn_back_icon",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 가로/세로 크기
          "size": [ "66.66666666666667%", "100%x" ], // 12x12
          // 기준점에서 이동하는 거리
          "offset": [ "150%y", "16.66666666666667%y" ]
        }
      },
      {
        // ???/?? ??
        "preview_outer_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "166.6666666666667%", "200%x" ], // 30x60
          // 기준점에서 이동하는 거리
          "offset": [ "6.666666666666667%x", 0 ],
          // ?? ????
          "clips_children": true,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "preview_outer_panel2": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 가로/세로 크기
                "size": [ "200%", "100%" ], // 30x60
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // ????? ?? ?
                "animation_reset_name": "rainbowpie.smithing_preview_turn_front",
                // 애니메이션 목록
                "anims": [
                  "@rainbowpieui_smithing_table_2.smithing_preview_reset_anim",
                  "@rainbowpieui_smithing_table_2.smithing_preview_turn_back_anim"
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "debug01@rainbowpie_ui_common.debug_draw": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_debug_name": "outer_panel2"
                    }
                  },
                  {
                    // ???/?? ??
                    "preview_stack_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // ????? ?? ?
                      "animation_reset_name": "rainbowpie.smithing_preview_turn_back",
                      // 애니메이션 목록
                      "anims": [
                        "@rainbowpieui_smithing_table_2.smithing_preview_reset_anim",
                        "@rainbowpieui_smithing_table_2.smithing_preview_turn_front_anim"
                      ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "preview_front_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "50%", "100%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "debug01@rainbowpie_ui_common.debug_draw": {
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_debug_name": "front"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "inner@rainbowpieui_smithing_table_2.result_item_preview_inner": {}
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "preview_back_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "50%", "100%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "debug01@rainbowpie_ui_common.debug_draw": {
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_debug_name": "back"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "inner@rainbowpieui_smithing_table_2.result_item_preview_inner": {
                                  // 오버라이드 가능한 변수
                                  "$rotation_y": -140
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "result_item_preview_inner": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "83.33333333333333%", "100%x" ],
    // 오버라이드 가능한 변수
    "$rotation_y|default": -30,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "smithing_preview_renderer": {
          // 특수 렌더러(그라디언트/플레이어 등)
          "type": "custom",
          // 커스텀 렌더러 종류
          "renderer": "equipment_preview_renderer",
          // ?? ??
          "enable_scissor_test": true,
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 애니메이션 목록
          "anims": [
            "@common.screen_exit_size_animation_push",
            "@common.screen_exit_size_animation_pop",
            "@common.screen_entrance_size_animation_push",
            "@common.screen_entrance_size_animation_pop"
          ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8,
          // ?? ??
          "rotation_x": 30,
          // ?? ??
          "rotation_y": "$rotation_y",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#item_id_aux",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "smithing_table_result_items"
            },
            {
              // 가져올 값 이름
              "binding_name": "#item_custom_color",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "smithing_table_result_items"
            },
            {
              // 가져올 값 이름
              "binding_name": "#armor_trim_pattern",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "smithing_table_result_items"
            },
            {
              // 가져올 값 이름
              "binding_name": "#armor_trim_material",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "smithing_table_result_items"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "smithing_table_item_slot": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "container_item@rainbowpie_ui_inventory_and_container.container_item": {
          // 가로/세로 크기
          "size": [ "100%y", "33.33333333333333%" ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 오버라이드 가능한 변수
          "$hover_text_max_width": 500
        }
      }
    ]
  },

  // ???/?? ??
  "template_overlay_image": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "templates@smithing_table_2.smithing_input_image_templates": {
          // 가로/세로 크기
          "size": [ "100%y", "88.88888888888889%" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#show_input_overlay_templates",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "input_overlay_image": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "armors_and_tools@smithing_table_2.smithing_input_image_armors_and_tools": {
          // 가로/세로 크기
          "size": [ "100%y", "88.88888888888889%" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#show_input_overlay_armors_and_tools",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "armors@smithing_table_2.smithing_input_image_armors": {
          // 가로/세로 크기
          "size": [ "100%y", "88.88888888888889%" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#show_input_overlay_armors",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "material_overlay_image": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "all_materials@smithing_table_2.smithing_material_image_all": {
          // 가로/세로 크기
          "size": [ "100%y", "88.88888888888889%" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#show_material_overlay_all",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "ingot@smithing_table_2.smithing_material_image_ingot": {
          // 가로/세로 크기
          "size": [ "100%y", "88.88888888888889%" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#show_material_overlay_ingot",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "smithing_table_root_panel@common.root_panel": {
    // 가로/세로 크기
    "size": [ 168, 161 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "inventory_selected_icon_button@common.inventory_selected_icon_button": {} },
      { "gamepad_cursor@common.gamepad_cursor_button": {} },
      { "inventory_take_progress_icon_button@common.inventory_take_progress_icon_button": {} },
      {
        // ???/?? ??
        "inventory_ui_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 애니메이션 목록
          "anims": [
            "@rainbowpie_ui_animations.container_panel_exit_animation_push",
            "@rainbowpie_ui_animations.container_panel_exit_animation_pop",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_push",
            "@rainbowpie_ui_animations.container_panel_entrance_animation_pop"
          ],
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "smithingtable2_background_icon@rainbowpie_ui_inventory.background_icon": {
                // 가로/세로 크기
                "size": "$rainbowpie_ui_theme_inventory_bgicon_smithingtable2_size",
                // 기준점에서 이동하는 거리
                "offset": "$rainbowpie_ui_theme_inventory_bgicon_smithingtable2_offset",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$rainbowpie_ui_theme_inventory_bgicon_smithingtable2_anchor",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$rainbowpie_ui_theme_inventory_bgicon_smithingtable2_anchor",
                // 사용할 이미지 경로
                "texture": "$rainbowpie_ui_theme_inventory_bgicon_smithingtable2_texture",
                // ???
                "alpha": "$rainbowpie_ui_theme_inventory_bgicon_smithingtable2_alpha"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background_icon@rainbowpie_ui_inventory.background_icon": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory_header@rainbowpie_ui_inventory.header": {
                // 가로/세로 크기
                "size": [ "100%", "14.28571428571429%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title": "container.smithing_table.upgrade",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border1_size": [ "2.380952380952381%", 0 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border2_size": [ "2.380952380952381%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "common_panel@common.common_panel": {
                // 오버라이드 가능한 변수
                "$dialog_background": "rainbowpie_ui_common.inventory_background",
                // 오버라이드 가능한 변수
                "$show_close_button": false,
                // 가로/세로 크기
                "size": [ "100%", "100% - 14.28571428571429%" ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle"
              }
            },
            {
              // ???/?? ??
              "top_half_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "33.54037267080745%" ], // 162x54
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-50.31055900621118%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "recipe_grid": {
                      // 격자 컨테이너: 칸칸이 배치
                      "type": "grid",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 그리드 칸 수
                      "grid_dimensions": [ 9, 1 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "template_item_slot@rainbowpieui_smithing_table_2.smithing_table_item_slot": {
                            // 그리드 위치
                            "grid_position": [ 0, 0 ],
                            // 오버라이드 가능한 변수
                            "$item_collection_name": "smithing_table_template_items",
                            // 오버라이드 가능한 변수
                            "$cell_overlay_ref": "rainbowpieui_smithing_table_2.template_overlay_image",

                            // 오버라이드 가능한 변수
                            "$focus_id_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_id": "smithing_table_template",

                            // 오버라이드 가능한 변수
                            "$focus_override_right_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_right": "smithing_table_input"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "input_item_slot@rainbowpieui_smithing_table_2.smithing_table_item_slot": {
                            // 그리드 위치
                            "grid_position": [ 1, 0 ],
                            // 오버라이드 가능한 변수
                            "$item_collection_name": "smithing_table_input_items",
                            // 오버라이드 가능한 변수
                            "$cell_overlay_ref": "rainbowpieui_smithing_table_2.input_overlay_image",

                            // 오버라이드 가능한 변수
                            "$focus_id_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_id": "smithing_table_input",

                            // 오버라이드 가능한 변수
                            "$focus_override_right_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_right": "smithing_table_material",

                            // 오버라이드 가능한 변수
                            "$focus_override_left_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_left": "smithing_table_template"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "material_item_slot@rainbowpieui_smithing_table_2.smithing_table_item_slot": {
                            // 그리드 위치
                            "grid_position": [ 2, 0 ],
                            // 오버라이드 가능한 변수
                            "$item_collection_name": "smithing_table_material_items",
                            // 오버라이드 가능한 변수
                            "$cell_overlay_ref": "rainbowpieui_smithing_table_2.material_overlay_image",

                            // 오버라이드 가능한 변수
                            "$focus_id_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_id": "smithing_table_material",

                            // 오버라이드 가능한 변수
                            "$focus_override_left_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_left": "smithing_table_input",

                            // 오버라이드 가능한 변수
                            "$focus_override_right_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_right": "smithing_table_result"
                          }
                        },
                        {
                          // ???/?? ??
                          "yields": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 그리드 위치
                            "grid_position": [ 3, 0 ],
                            // 가로/세로 크기
                            "size": [ "22.2%", "100%" ], // Center across two grid columns | 35.964x54
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "arrow_icon@smithing_table_2.arrow_icon": {
                                  // 가로/세로 크기
                                  "size": [ "150%y", "22.22222222222222%" ],
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 3
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "cross_out_icon@smithing_table_2.cross_out_icon_button": {
                                  // 가로/세로 크기
                                  "size": [ "150%y", "22.22222222222222%" ],
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 4
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "result_item_slot@rainbowpieui_smithing_table_2.smithing_table_item_slot": {
                            // 그리드 위치
                            "grid_position": [ 5, 0 ],
                            // 오버라이드 가능한 변수
                            "$item_collection_name": "smithing_table_result_items",
                            // 오버라이드 가능한 변수
                            "$button_ref": "smithing_table_2.smithing_table_output_slot_button",

                            // 오버라이드 가능한 변수
                            "$focus_id_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_id": "smithing_table_result",

                            // 오버라이드 가능한 변수
                            "$focus_override_left_binding_type": "none",
                            // 오버라이드 가능한 변수
                            "$focus_override_left": "smithing_table_material"
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "result_item_preview@rainbowpieui_smithing_table_2.result_item_preview": {
                            // 그리드 위치
                            "grid_position": [ 7, 0 ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory@rainbowpie_ui_inventory_and_container.inventory_panel_bottom_half": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "33.54037267080745%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-14.90683229813665%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar@rainbowpie_ui_inventory_and_container.hotbar_grid_template": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "11.18012422360248%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-1.863354037267081%" ]
              }
            }
          ]
        }
      }
    ]
  }
}

start_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: start_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_start",

  // ???/?? ??
  "icon_maker_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/start/background')",
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 8
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "icon_maker_toggle_base@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_start.icon_maker_icon",

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_start_icon_maker",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 1001,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  },

  // ???/?? ??
  "friends_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/friendsbutton/navbar-friends-icon",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3,
    // 가로/세로 크기
    "size": [ 16, 16 ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "treatment_store_button_status_panel@rainbowpie_ui_button.rainbowpie_ui_button_default": {
    // 오버라이드 가능한 변수
    "$is_treatment_button|default": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_border_enabled|default": "(not $is_treatment_button)",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_controls": [
      {
        // ???/?? ??
        "button_background": {
          // 이미지 표시
          "type": "image",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $button_image_visible)",
          // 가로/세로 크기
          "size": "$button_image_size",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ?? (R,G,B,A)
          "color": "$rainbowpie_localui_button_color",
          // ???
          "alpha": "$rainbowpie_localui_button_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "treatment_button_color_background": {
          // 이미지 표시
          "type": "image",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $is_treatment_button)",
          // 가로/세로 크기
          "size": "$button_image_size",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ?? (R,G,B,A)
          "color": "$bg_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$default_state",
              // 오버라이드 가능한 변수
              "$bg_color": "$light_border_default_color"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "$hover_state",
              // 오버라이드 가능한 변수
              "$bg_color": "$light_border_hover_color"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "$pressed_state",
              // 오버라이드 가능한 변수
              "$bg_color": "$light_border_pressed_color"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "$locked_state",
              // 오버라이드 가능한 변수
              "$bg_color": "$light_border_locked_color"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "treatment_button_background": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ "150px - 2px - 2px", "32px - 2px - 2px" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 사용할 이미지 경로
          "texture": "$button_texture",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // 완전히 제거(공간도 없음)
          "ignored": "(not $is_treatment_button)",
          // 보이기/숨기기(공간 유지)
          "visible": "(not (($button_texture = 'textures/ui/button_borderless_light') or ($button_texture = 'textures/ui/button_borderless_lighthover') or ($button_texture = 'textures/ui/button_borderless_lightpressed') or ($button_texture = 'textures/ui/disabledButtonNoBorder')))",
          // 오버라이드 가능한 변수
          "$button_texture": "",
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$default_state",
              // 오버라이드 가능한 변수
              "$button_texture": "$default_button_texture"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "$hover_state",
              // 오버라이드 가능한 변수
              "$button_texture": "$hover_button_texture"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "$pressed_state",
              // 오버라이드 가능한 변수
              "$button_texture": "$pressed_button_texture"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "$locked_state",
              // 오버라이드 가능한 변수
              "$button_texture": "$locked_button_texture"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button_desc@rainbowpie_ui_button.button_desc": {}
      },
      {
        // ???/?? ??
        "treatment_button_content": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 가로/세로 크기
          "size": [ "150px - 2px - 6px", "32px - 2px - 6px" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4,
          // 완전히 제거(공간도 없음)
          "ignored": "(not $is_treatment_button)",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "button_content": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점에서 이동하는 거리
                "offset": "$rainbowpie_localui_button_offset",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "content@$button_content": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "button_content": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 오버라이드 가능한 변수
          "$button_content_size|default": [ "100% - 6px", "100% - 6px" ],
          // 가로/세로 크기
          "size": "$button_content_size",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 12,
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "($is_treatment_button and $default_state)",
              // 오버라이드 가능한 변수
              "$text_color": "$default_text_color"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "button_content@rainbowpieui_start.startv2_big_button_panel": {
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_icon": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "100%y", "100% - 4px" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 2, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 사용할 이미지 경로
                      "texture": "($icon_theme_dir + '/' + $icon_texture_name)",
                      // ?? (R,G,B,A)
                      "color": "$text_color",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 8,
                      // 완전히 제거(공간도 없음)
                      "ignored": "$is_treatment_button"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "button_text@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "100% - 30px", "default" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 30, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 보여줄 글자
                      "text": "menu.store",
                      // ?? (R,G,B,A)
                      "color": "$text_color",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 12
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "inbox_icon": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "inbox_bell_animated_icon@start.inbox_bell_animated_icon": {} },
      { "inbox_button_unread_panel@start.inbox_button_unread_panel": {} }
    ]
  },

  // ???/?? ??
  "more_option_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/start/more')",
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 8
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "more_option_toggle_base@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_start.more_option_icon",

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_start_more_option",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 1001,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  },

  // ???/?? ??
  "background_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/start/background')",
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 8
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "background_dialog_toggle_base@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_start.background_icon",

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_start_background_dialog",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 1001,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "modal_label_panel@common.scrolling_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scrolling_pane_size": [ "100% - 1px", "100%" ],
    // 오버라이드 가능한 변수
    "$scrolling_pane_offset": [ 2, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_size": [ 5, "100% - 4px" ],
    // 오버라이드 가능한 변수
    "$show_background": false,
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 오버라이드 가능한 변수
    "$always_handle_scrolling": true
  },

  // ???/?? ??
  "background_text_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100% - 4px", "100%c" ],
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 2, 0 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 0, 2 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "name_text@rainbowpie_ui_common.text_label_notheme": {
          // ?? (R,G,B,A)
          "color": "$rainbowpie_ui_theme_dialog_content_color",
          // 보여줄 글자
          "text": "$rainbowpie_ui_theme_background_name",
          // ?? ?? ??
          "font_scale_factor": 1.2
        }
      },
      {
        // ???/?? ??
        "padding_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 0, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "description_text@rainbowpie_ui_common.text_label_notheme": {
          // ?? (R,G,B,A)
          "color": "$rainbowpie_ui_theme_dialog_content_color",
          // 보여줄 글자
          "text": "$rainbowpie_ui_theme_background_description"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background_path@rainbowpie_ui_common.text_label_notheme": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not ($rainbowpieui_branch_type = 'dev'))",
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // ?? (R,G,B,A)
          "color": "$rainbowpie_ui_theme_dialog_content_color",
          // 보여줄 글자
          "text": "('\n' + $rainbowpie_ui_theme_background_texture + '\n' + $rainbowpie_ui_theme_background_blur_texture)"
        }
      }
    ]
  },


  // ???/?? ??
  "background_dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "modal_label_panel@rainbowpieui_start.modal_label_panel": {
                      // 오버라이드 가능한 변수
                      "$scrolling_content": "rainbowpieui_start.background_text_panel"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c + 1px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100% + 1px", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "close_dialog_button@rainbowpieui_start.background_dialog_toggle_base": {
                            // 오버라이드 가능한 변수
                            "$button_content": "rainbowpieui_start.button_text",
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$button_text": "gui.ok",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_default_alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 가로/세로 크기
                            "size": [ "100%", 23 ],
                            // 오버라이드 가능한 변수
                            "$toggle_group_forced_index": 1001,
                            // 오버라이드 가능한 변수
                            "$toggle_view_binding_name": "close_background_dialog",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 2000,
                            // 오버라이드 가능한 변수
                            "$button_mappings": [
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_cancel",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.menu_select",
                                // 입력 시점(pressed 등)
                                "mapping_type": "global"
                              },
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_select",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.menu_select",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed"
                              },
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_ok",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.menu_ok",
                                // 입력 시점(pressed 등)
                                "mapping_type": "focused"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "servers_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "100%y", "100% - 4px" ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/start/servers')",
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 8
  },

  // ???/?? ??
  "get_started_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "100%y", "100% - 4px" ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/start/quickplay')",
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 8
  },

  // ???/?? ??
  "close_button_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 30, 30 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/global/close_button/close')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_localui_button_text_color"
  },

  // ???/?? ??
  "startv2_profile_button_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "online_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "28px" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "gamerpic@start.gamerpic": {
                // 가로/세로 크기
                "size": [ "100%y", "100%" ],
                // 오버라이드 가능한 변수
                "$gamerpic_visible": "#show_gamerpic"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "alex_icon@start.alex_icon": {
                // 가로/세로 크기
                "size": [ "100%y", "100%" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "(not #show_gamerpic)",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "gamertag": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%cm + 8px", "100%" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "button_text@rainbowpie_ui_common.text_label_notheme": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 보여줄 글자
                      "text": "#gamertag_label",
                      // ?? ?? ??
                      "font_scale_factor": 1.4,
                      // ?? (R,G,B,A)
                      "color": "$text_color",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#gamertag_label"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "(not #sign_in_visible)",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "gamertag_label_offline@rainbowpie_ui_common.text_label_notheme": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 보여줄 글자
                      "text": "#playername",
                      // ?? ?? ??
                      "font_scale_factor": 1.4,
                      // ?? (R,G,B,A)
                      "color": "$text_color",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#playername"
                        },
                        {
                          // 가져올 값 이름
                          "binding_name": "#sign_in_visible",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "startv2_big_button_template@common_buttons.light_content_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_start.startv2_big_button_panel",
    // 가로/세로 크기
    "size": [ "100%", 32 ]
  },

  // ???/?? ??
  "startv2_big_button_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$button_text|default": "Default Button Text",
    // 오버라이드 가능한 변수
    "$icon_theme_dir|default": "($rainbowpie_ui_path_theme + '/icon/start')",
    // 오버라이드 가능한 변수
    "$icon_texture_name|default": "null",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "button_icon": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ "100%y", "100% - 4px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 2, 0 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 사용할 이미지 경로
          "texture": "($icon_theme_dir + '/' + $icon_texture_name)",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button_text@rainbowpie_ui_common.text_label_notheme": {
          // 가로/세로 크기
          "size": [ "100% - 30px", "default" ],
          // 기준점에서 이동하는 거리
          "offset": [ 30, 0 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 보여줄 글자
          "text": "$button_text",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10
        }
      }
    ]
  },

  // ???/?? ??
  "startv2_store_button_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$button_text|default": "Default Button Text",
    // 오버라이드 가능한 변수
    "$icon_theme_dir|default": "($rainbowpie_ui_path_theme + '/icon/start')",
    // 오버라이드 가능한 변수
    "$icon_texture_name|default": "null",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "button_icon": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ "100%y", "100% - 4px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 2, 0 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 사용할 이미지 경로
          "texture": "($icon_theme_dir + '/' + $icon_texture_name)",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button_text@rainbowpie_ui_common.text_label_notheme": {
          // 가로/세로 크기
          "size": [ "100% - 30px", "default" ],
          // 기준점에서 이동하는 거리
          "offset": [ 30, 0 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 보여줄 글자
          "text": "$button_text",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10
        }
      },
      {
        // ???/?? ??
        "store_button_art": {
          // 완전히 제거(공간도 없음)
          "ignored": "$store_disabled",
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100% + 8px", "100% + 8px" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 50,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#store_button_art_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "default_background@start.main_button_gif": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 오버라이드 가능한 변수
                "$gif_path_binding_name": "#store_button_art_default_bg_path",
                // 오버라이드 가능한 변수
                "$gif_alpha_binding_name": "#store_button_art_default_alpha"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hover_background@start.main_button_gif": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 오버라이드 가능한 변수
                "$gif_path_binding_name": "#store_button_art_hover_bg_path",
                // 오버라이드 가능한 변수
                "$gif_alpha_binding_name": "#store_button_art_hover_alpha"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "button_text@rainbowpie_ui_common.text_label_notheme": {
                // 가로/세로 크기
                "size": [ "100% - 30px", "default" ],
                // 기준점에서 이동하는 거리
                "offset": [ 34, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 보여줄 글자
                "text": "$button_text",
                // ?? (R,G,B,A)
                "color": "$text_color",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#store_button_art_label_color",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#color",
                    // ?? ???
                    "binding_condition": "visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "default_foreground@start.main_button_gif": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4,
                // 오버라이드 가능한 변수
                "$gif_path_binding_name": "#store_button_art_default_fg_path",
                // 오버라이드 가능한 변수
                "$gif_alpha_binding_name": "#store_button_art_default_alpha"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hover_foreground@start.main_button_gif": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 5,
                // 오버라이드 가능한 변수
                "$gif_path_binding_name": "#store_button_art_hover_fg_path",
                // 오버라이드 가능한 변수
                "$gif_alpha_binding_name": "#store_button_art_hover_alpha"
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "store_button_banner@start.main_button_banner": {
          // 완전히 제거(공간도 없음)
          "ignored": "$store_disabled",
          // 기준점에서 이동하는 거리
          "offset": [ 13, -4 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 62,
          // 오버라이드 가능한 변수
          "$banner_visible_binding_name": "#store_button_banner_visible",
          // 오버라이드 가능한 변수
          "$banner_texture_binding_name": "#store_button_banner_texture",
          // 오버라이드 가능한 변수
          "$banner_texture_source_binding_name": "#store_button_banner_texture_source",
          // 오버라이드 가능한 변수
          "$banner_text_binding_name": "#store_button_banner_text",
          // 오버라이드 가능한 변수
          "$banner_text_color_binding_name": "#store_button_banner_text_color"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "update_icon@start.update_prompt_icon": {
          // 완전히 제거(공간도 없음)
          "ignored": "$store_disabled",
          // 가로/세로 크기
          "size": [ "52.38%y", 15 ],
          // 기준점에서 이동하는 거리
          "offset": [ -12, -10 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 60,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#update_icon_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // ?? ???
              "binding_condition": "always"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "new_offers_icon@start.new_offers_icon": {
          // 완전히 제거(공간도 없음)
          "ignored": "$store_disabled",
          // 기준점에서 이동하는 거리
          "offset": [ 12, -10 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 60,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#new_offers",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "hide_paper_doll_anim": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "hide_paper_doll_anim_exit_push@rainbowpieui_start.hide_paper_doll_anim": {
    // 시작 값
    "from": [ 0, 38 ],
    // 끝 값
    "to": [ "100%x", 38 ],
    // ?? ??
    "play_event": "screen.exit_push"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "hide_paper_doll_anim_exit_pop@rainbowpieui_start.hide_paper_doll_anim": {
    // 시작 값
    "from": [ 0, 38 ],
    // 끝 값
    "to": [ "100%x", 38 ],
    // ?? ??
    "play_event": "screen.exit_pop"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "hide_paper_doll_anim_entrance_push@rainbowpieui_start.hide_paper_doll_anim": {
    // 시작 값
    "from": [ "100%x", 38 ],
    // 끝 값
    "to": [ 0, 38 ],
    // ?? ??
    "play_event": "screen.entrance_push"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "hide_paper_doll_anim_entrance_pop@rainbowpieui_start.hide_paper_doll_anim": {
    // 시작 값
    "from": [ "100%x", 38 ],
    // 끝 값
    "to": [ 0, 38 ],
    // ?? ??
    "play_event": "screen.entrance_pop"
  },

  // ???/?? ??
  "startv2_skin_button_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100% + 5px", "100% + 5px" ],
    // 오버라이드 가능한 변수
    "$button_text|default": "Default Button Text",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "button_icon": {
          // 특수 렌더러(그라디언트/플레이어 등)
          "type": "custom",
          // 커스텀 렌더러 종류
          "renderer": "gradient_renderer",
          // 가로/세로 크기
          "size": [ 28, "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // ?? ?? ?
          "color1": [ 0.407843137254902, 0.5254901960784314, 0.8, 1.0 ],
          // ?? ?? ?
          "color2": [ 0.5098039215686275, 0.6549019607843137, 1.0, 1.0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8,
          // ?? ????
          "clips_children": true,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "paper_doll": {
                // 특수 렌더러(그라디언트/플레이어 등)
                "type": "custom",
                // 커스텀 렌더러 종류
                "renderer": "paper_doll_renderer",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 가로/세로 크기
                "size": [ 92, "100%x" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 38 ],
                // ?? ??
                "enable_scissor_test": true,
                // ????? ?? ?
                "animation_reset_name": "screen_animation_reset",
                // 애니메이션 목록
                "anims": [
                  "@rainbowpieui_start.hide_paper_doll_anim_exit_push",
                  "@rainbowpieui_start.hide_paper_doll_anim_exit_pop",
                  "@rainbowpieui_start.hide_paper_doll_anim_entrance_push",
                  "@rainbowpieui_start.hide_paper_doll_anim_entrance_pop"
                ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button_text@rainbowpie_ui_common.text_label_notheme": {
          // 가로/세로 크기
          "size": [ "100% - 32.5px", "default" ],
          // 기준점에서 이동하는 거리
          "offset": [ 32.5, 0 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 보여줄 글자
          "text": "$button_text",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "button_text@rainbowpie_ui_common.text_label_notheme": {
    // 보여줄 글자
    "text": "$button_text",
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 가로/세로 크기
    "size": [ "default", "default" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 4
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "dialog_alert_toggle_base@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_start.button_text",

    // 오버라이드 가능한 변수
    "$button_type_panel": "common_buttons.new_ui_binding_button_label",
    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "ToggleButton",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_start_dialog_alert",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 1001,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": ""
  },

  // ???/?? ??
  "dialog_alert_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_panel@rainbowpie_ui_dialog.content_background": {
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "text@rainbowpie_ui_common.text_label_notheme": {
                      // 가로/세로 크기
                      "size": [ "100% - 8px", "100% - 4px" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_dialog_content_color",
                      // 보여줄 글자
                      "text": "$rainbowpie_ui_flag_start_dialog_alert_text"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c + 1px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100% + 1px", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "close_dialog_button@rainbowpieui_start.dialog_alert_toggle_base": {
                            // 오버라이드 가능한 변수
                            "$button_image_size": [ "100% - 1px", "100%" ],
                            // 오버라이드 가능한 변수
                            "$button_text": "$rainbowpie_ui_flag_start_dialog_alert_button",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_default_alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 가로/세로 크기
                            "size": [ "100%", 23 ],
                            // 오버라이드 가능한 변수
                            "$toggle_group_forced_index": 1000,
                            // 오버라이드 가능한 변수
                            "$toggle_view_binding_name": "close_dialog",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 2000,
                            // 오버라이드 가능한 변수
                            "$button_mappings": [
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_cancel",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.menu_select",
                                // 입력 시점(pressed 등)
                                "mapping_type": "global"
                              },
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_select",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.menu_select",
                                // 입력 시점(pressed 등)
                                "mapping_type": "pressed"
                              },
                              {
                                // 어떤 입력을 받을지
                                "from_button_id": "button.menu_ok",
                                // 어떤 동작을 실행할지
                                "to_button_id": "button.menu_ok",
                                // 입력 시점(pressed 등)
                                "mapping_type": "focused"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "start_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "icon_maker_screen": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_icon_maker)",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "background": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/Black",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 120
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "modal_input@common.input_panel": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 128,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "close_button@rainbowpieui_start.icon_maker_toggle_base": {
                      // 가로/세로 크기
                      "size": [ "100%y", "28px" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ -8, 8 ],
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_right",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_right",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 32,
                      // 오버라이드 가능한 변수
                      "$button_image_size": [ "100%", "100%" ],
                      // 오버라이드 가능한 변수
                      "$toggle_view_binding_name": "hide_icon_maker",
                      // 오버라이드 가능한 변수
                      "$button_content": "rainbowpieui_start.close_button_icon",
                      // 오버라이드 가능한 변수
                      "$button_mappings": [
                        {
                          // 어떤 입력을 받을지
                          "from_button_id": "button.menu_select",
                          // 어떤 동작을 실행할지
                          "to_button_id": "button.menu_select",
                          // 입력 시점(pressed 등)
                          "mapping_type": "pressed"
                        },
                        {
                          // 어떤 입력을 받을지
                          "from_button_id": "button.menu_ok",
                          // 어떤 동작을 실행할지
                          "to_button_id": "button.menu_ok",
                          // 입력 시점(pressed 등)
                          "mapping_type": "pressed"
                        },
                        {
                          // 어떤 입력을 받을지
                          "from_button_id": "button.menu_cancel",
                          // 어떤 동작을 실행할지
                          "to_button_id": "button.menu_select",
                          // 입력 시점(pressed 등)
                          "mapping_type": "global"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "icon_maker_background": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "100%y", "100%" ],
                      // 사용할 이미지 경로
                      "texture": "textures/ui/White",
                      // ?? (R,G,B,A)
                      "color": [ 0.196078431372549, 0.6588235294117647, 0.3215686274509804 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 16,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "icon_background": {
                            // 이미지 표시
                            "type": "image",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // ??? ?? ?
                            "allow_debug_missing_texture": false,
                            // ??? ?? ?
                            "force_texture_reload": true,
                            // 사용할 이미지 경로
                            "texture": "($rainbowpie_ui_path_home + '/icon_maker/icon_bg')",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1
                          }
                        },
                        {
                          // ???/?? ??
                          "ui_name_background": {
                            // 이미지 표시
                            "type": "image",
                            // 가로/세로 크기
                            "size": [ "100%", "22%" ],
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_middle",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_middle",
                            // 사용할 이미지 경로
                            "texture": "textures/ui/Black",
                            // ???
                            "alpha": 0.4,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 16,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "ui_name_text@rainbowpie_ui_common.text_label_notheme": {
                                  // 보여줄 글자
                                  "text": "$rainbowpie_ui_theme_global_title_text",
                                  // ??
                                  "font_type": "MinecraftTen",
                                  // ?? ?? ??
                                  "font_scale_factor": 6.0
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ],
                // 입력 키/버튼과 동작 연결
                "button_mappings": [
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_select",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_secondary_select",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_secondary_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_ok",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_ok",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_up",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_up",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global",
                    // ?? ??
                    "scope": "view"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_down",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_down",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global",
                    // ?? ??
                    "scope": "view"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_left",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_left",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global",
                    // ?? ??
                    "scope": "view"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_right",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_right",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global",
                    // ?? ??
                    "scope": "view"
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "show_icon_maker",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "background_dialog_screen": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 완전히 제거(공간도 없음)
          "ignored": "((not $rainbowpie_ui_flag_82d2c0e7) or ($rainbowpie_ui_theme_background_texture = ''))",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "modal_input@common.input_panel": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 100,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
                      // 가로/세로 크기
                      "size": [ 204, 132 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 100,
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_dialogheader_title": "rainbowpie.ui.themesystem.background.title",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_dialog_content": "rainbowpieui_start.background_dialog_content",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_dialog_show_background": false,
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_dialogheader_show_close": false
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "background2@rainbowpie_popup_dialog.background_panel_design2": {}
                  }
                ],
                // 입력 키/버튼과 동작 연결
                "button_mappings": [
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_select",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_secondary_select",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_secondary_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_ok",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_ok",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_up",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_up",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global",
                    // ?? ??
                    "scope": "view"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_down",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_down",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global",
                    // ?? ??
                    "scope": "view"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_left",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_left",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global",
                    // ?? ??
                    "scope": "view"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_right",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_right",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global",
                    // ?? ??
                    "scope": "view"
                  }
                ]
              }
            }
          ],
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#is_background_dialog_opened": false,
            // ???/??? ?
            "#is_background_dialog_opened_on_vanilla": false
          },
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "open_background_dialog",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#is_background_dialog_opened"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "open_background_dialog_vanilla",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#is_background_dialog_opened_on_vanilla"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#is_background_dialog_opened or #is_background_dialog_opened_on_vanilla)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "dialog_alert_screen": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_start_dialog_alert)",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "modal_input@common.input_panel": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 100,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
                      // 가로/세로 크기
                      "size": [ 204, 132 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 100,
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_dialogheader_title": "$rainbowpie_ui_flag_start_dialog_alert_title",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_dialog_content": "rainbowpieui_start.dialog_alert_content",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_dialog_show_background": false,
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_dialogheader_show_close": false
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "background2@rainbowpie_popup_dialog.background_panel_design2": {}
                  }
                ],
                // 입력 키/버튼과 동작 연결
                "button_mappings": [
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_select",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_secondary_select",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_secondary_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_ok",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_ok",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_up",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_up",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global",
                    // ?? ??
                    "scope": "view"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_down",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_down",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global",
                    // ?? ??
                    "scope": "view"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_left",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_left",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global",
                    // ?? ??
                    "scope": "view"
                  },
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_right",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_right",
                    // 입력 시점(pressed 등)
                    "mapping_type": "global",
                    // ?? ??
                    "scope": "view"
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "close_dialog",
              // 계산식/참조 값
              "source_property_name": "(not #toggle_state)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "screen_content": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 보이기/숨기기(공간 유지)
          "visible": true,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "design02_gradient_top": {
                // 특수 렌더러(그라디언트/플레이어 등)
                "type": "custom",
                // 커스텀 렌더러 종류
                "renderer": "gradient_renderer",
                // 완전히 제거(공간도 없음)
                "ignored": "(((not $rainbowpie_ui_flag_8dcce82d) and (not $rainbowpie_ui_flag_start_design02_gradient)) or $rainbowpie_ui_flag_screenbackground_gradient)",
                // 가로/세로 크기
                "size": [ "100%", 30 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // ?? ?? ?
                "color1": [ 0.0, 0.0, 0.0, 0.5 ],
                // ?? ?? ?
                "color2": [ 0.0, 0.0, 0.0, 0.0 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": -3
              }
            },
            {
              // ???/?? ??
              "design02_gradient_bottom": {
                // 특수 렌더러(그라디언트/플레이어 등)
                "type": "custom",
                // 커스텀 렌더러 종류
                "renderer": "gradient_renderer",
                // 완전히 제거(공간도 없음)
                "ignored": "(((not $rainbowpie_ui_flag_8dcce82d) and (not $rainbowpie_ui_flag_start_design02_gradient)) or $rainbowpie_ui_flag_screenbackground_gradient)",
                // 가로/세로 크기
                "size": [ "100%", 30 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // ?? ?? ?
                "color1": [ 0.0, 0.0, 0.0, 0.0 ],
                // ?? ?? ?
                "color2": [ 0.0, 0.0, 0.0, 0.5 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": -3
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "header@rainbowpie_ui_common.screen_header": {
                // 완전히 제거(공간도 없음)
                "ignored": "$rainbowpie_ui_flag_8dcce82d",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screenheader_ingame_anim1": true,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screenheader_ingame_anim2": "($rainbowpie_ui_flag_8dcce82d and $rainbowpie_ui_flag_fbadd01f)",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screenheader_title": "Minecraft | @Mojang Studio",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screenheader_content_panel": "rainbowpieui_start.player_name_panel"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "screen_content@rainbowpie_ui_common.screen_content": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screen_ingame_anim1": true,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screen_ingame_anim2": "($rainbowpie_ui_flag_8dcce82d and $rainbowpie_ui_flag_fbadd01f)",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screen_content": [
                  {
                    // ???/?? ??
                    "start_screen_design02": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_flag_8dcce82d)",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "compatibility_version_warn@rainbowpieui_compatibility_config.compatibility_variables": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "version_warn": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ 130, "100%c" ],
                                  // 기준점에서 이동하는 거리
                                  "offset": [ -8, 40 ],
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "top_right",
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "top_right",
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 18,
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // ???/?? ??
                                      "background": {
                                        // 이미지 표시
                                        "type": "image",
                                        // 가로/세로 크기
                                        "size": [ "100%", "100%c + 6px" ],
                                        // 사용할 이미지 경로
                                        "texture": "textures/ui/White",
                                        // ?? (R,G,B,A)
                                        "color": "$rainbowpie_ui_theme_text_background_color",
                                        // ???
                                        "alpha": 0.5,
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": 1,
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // ???/?? ??
                                            "load_tip_stack_panel": {
                                              // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                              "type": "stack_panel",
                                              // 가로/세로 크기
                                              "size": [ "100% - 6px", "100%c" ],
                                              // 이 안에 들어가는 부품 목록
                                              "controls": [
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "label_1@rainbowpie_ui_common.text_label_notheme": {
                                                    // 가로/세로 크기
                                                    "size": [ "100%", "default" ],
                                                    // ?? (R,G,B,A)
                                                    "color": [ 1.0, 1.0, 0.333 ],
                                                    // 보여줄 글자
                                                    "text": "rainbowpie.ui.version.warn",
                                                    // ?? ?? ??
                                                    "font_scale_factor": 1.3,
                                                    // 겹치는 순서(숫자 클수록 위)
                                                    "layer": 1
                                                  }
                                                },
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "title_driven@rainbowpieui_settings_common.driven": {}
                                                },
                                                {
                                                  // ???/?? ??
                                                  "title_padding": {
                                                    // 패널: 다른 부품을 담는 바닥판
                                                    "type": "panel",
                                                    // 가로/세로 크기
                                                    "size": [ 0, 2 ]
                                                  }
                                                },
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "label_2@rainbowpie_ui_common.text_label_notheme": {
                                                    // 가로/세로 크기
                                                    "size": [ "100%", "default" ],
                                                    // ?? (R,G,B,A)
                                                    "color": "$rainbowpie_ui_theme_text_text_color",
                                                    // 보여줄 글자
                                                    "text": "rainbowpie.ui.version.supported",
                                                    // 겹치는 순서(숫자 클수록 위)
                                                    "layer": 1
                                                  }
                                                },
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "label_3@rainbowpie_ui_common.text_label_notheme": {
                                                    // 완전히 제거(공간도 없음)
                                                    "ignored": "($rainbowpieui_version_minecraft_min = $rainbowpieui_version_minecraft_max)",
                                                    // 가로/세로 크기
                                                    "size": [ "100%", "default" ],
                                                    // ?? (R,G,B,A)
                                                    "color": [ 0.333, 1.0, 0.333 ],
                                                    // 보여줄 글자
                                                    "text": "('\"' + $rainbowpieui_version_minecraft_min + '-' + $rainbowpieui_version_minecraft_max + '\"')",
                                                    // 겹치는 순서(숫자 클수록 위)
                                                    "layer": 1
                                                  }
                                                },
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "label_4@rainbowpie_ui_common.text_label_notheme": {
                                                    // 완전히 제거(공간도 없음)
                                                    "ignored": "(not ($rainbowpieui_version_minecraft_min = $rainbowpieui_version_minecraft_max))",
                                                    // 가로/세로 크기
                                                    "size": [ "100%", "default" ],
                                                    // ?? (R,G,B,A)
                                                    "color": [ 0.333, 1.0, 0.333 ],
                                                    // 보여줄 글자
                                                    "text": "('\"' + $rainbowpieui_version_minecraft_target + '\"')",
                                                    // 겹치는 순서(숫자 클수록 위)
                                                    "layer": 1
                                                  }
                                                },
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "label_5@rainbowpie_ui_common.text_label_notheme": {
                                                    // 가로/세로 크기
                                                    "size": [ "100%", "default" ],
                                                    // ?? (R,G,B,A)
                                                    "color": [ 1.0, 0.333, 0.333 ],
                                                    // 보여줄 글자
                                                    "text": "rainbowpie.ui.version.warn_unsupport",
                                                    // 겹치는 순서(숫자 클수록 위)
                                                    "layer": 1
                                                  }
                                                },
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "label_6@rainbowpie_ui_common.text_label_notheme": {
                                                    // 가로/세로 크기
                                                    "size": [ "100%", "default" ],
                                                    // ?? (R,G,B,A)
                                                    "color": [ 1.0, 1.0, 0.333 ],
                                                    // 보여줄 글자
                                                    "text": "rainbowpie.ui.version.dev.err_variable",
                                                    // 겹치는 순서(숫자 클수록 위)
                                                    "layer": 1,
                                                    // 게임 값과 연결하는 규칙 목록
                                                    "bindings": [
                                                      {
                                                        // 가져올 값 이름
                                                        "binding_name": "#version"
                                                      },
                                                      {
                                                        // 계산/조건 결과를 연결
                                                        "binding_type": "view",
                                                        // 계산식/참조 값
                                                        "source_property_name": "((#version - $rainbowpieui_version_minecraft_bigver) = #version)",
                                                        // 결과가 들어갈 속성
                                                        "target_property_name": "#visible"
                                                      }
                                                    ]
                                                  }
                                                },
                                                {
                                                  // ???/?? ??
                                                  "bottom_padding": {
                                                    // 패널: 다른 부품을 담는 바닥판
                                                    "type": "panel",
                                                    // 가로/세로 크기
                                                    "size": [ 0, 2 ]
                                                  }
                                                },
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "driven@rainbowpieui_settings_common.driven": {}
                                                },
                                                {
                                                  // ???/?? ??
                                                  "padding_1": {
                                                    // 패널: 다른 부품을 담는 바닥판
                                                    "type": "panel",
                                                    // 가로/세로 크기
                                                    "size": [ 0, 2 ]
                                                  }
                                                },
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "label_7@rainbowpie_ui_common.text_label_notheme": {
                                                    // 가로/세로 크기
                                                    "size": [ "100%", "default" ],
                                                    // ?? (R,G,B,A)
                                                    "color": [ 1.0, 1.0, 0.333 ],
                                                    // 보여줄 글자
                                                    "text": "rainbowpie.ui.version.subpacks",
                                                    // 겹치는 순서(숫자 클수록 위)
                                                    "layer": 1
                                                  }
                                                },
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "label_8@rainbowpie_ui_common.text_label_notheme": {
                                                    // 가로/세로 크기
                                                    "size": [ "100%", "default" ],
                                                    // ?? (R,G,B,A)
                                                    "color": "$rainbowpie_ui_theme_text_text_color",
                                                    // 보여줄 글자
                                                    "text": "rainbowpie.ui.version.subpacks_supported",
                                                    // 겹치는 순서(숫자 클수록 위)
                                                    "layer": 1
                                                  }
                                                },
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "label_9@rainbowpie_ui_common.text_label_notheme": {
                                                    // 가로/세로 크기
                                                    "size": [ "100%", "default" ],
                                                    // ?? (R,G,B,A)
                                                    "color": [ 0.333, 1.0, 0.333 ],
                                                    // 보여줄 글자
                                                    "text": "('\"' + $rainbowpieui_version_minecraft_subpacks + '\"')",
                                                    // 겹치는 순서(숫자 클수록 위)
                                                    "layer": 1
                                                  }
                                                }
                                              ]
                                            }
                                          }
                                        ]
                                      }
                                    }
                                  ],
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_this_bigver": "($rainbowpieui_version_minecraft_bigver + '.')",
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_this_max_version_code": "($rainbowpieui_version_minecraft_max - $rainbowpie_localui_this_bigver)",
                                  // 오버라이드 가능한 변수
                                  "$rainbowpie_localui_this_min_version_code": "($rainbowpieui_version_minecraft_min - $rainbowpie_localui_this_bigver)",
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#version"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "(#version - $rainbowpie_localui_this_bigver)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#current_version_code"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "((#version - $rainbowpieui_version_minecraft_bigver) = #version)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#invalid_big_version"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "(#current_version_code > $rainbowpie_localui_this_max_version_code)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#version_too_high"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "(#current_version_code < $rainbowpie_localui_this_min_version_code)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#version_too_low"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "(#invalid_big_version or #version_too_high or #version_too_low)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#visible"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "title_text@rainbowpie_ui_common.title_text": {
                            // 완전히 제거(공간도 없음)
                            "ignored": "$rainbowpie_ui_flag_1c167cde",
                            // 오버라이드 가능한 변수
                            "$title_text_scale": 3.4,
                            // 기준점에서 이동하는 거리
                            "offset": [ 8, "2.5%" ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_left",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_left",
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "splash_text@common_art.splash_text": {
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "(not $rainbowpie_ui_flag_start_splash_text)"
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "easteregg_button@common_buttons.light_text_button": {
                            // 완전히 제거(공간도 없음)
                            "ignored": "($rainbowpie_ui_flag_1c167cde or (not $rainbowpie_ui_flag_3520da91))",
                            // 오버라이드 가능한 변수
                            "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_desc_enabled": true,
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_desc_text": "You found an easter egg!!!\nVisit the link below to claim your rewards.\n§ehttps://mintraspberry.cool/reward",
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_default_alpha": 0,
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_hover_alpha": 0,
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_pressed_alpha": 0,
                            // 오버라이드 가능한 변수
                            "$rainbowpie_localui_button_locked_alpha": 0,
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "rainbowpie.easteregg_click",
                            // 오버라이드 가능한 변수
                            "$button_text": "",
                            // 오버라이드 가능한 변수
                            "$focus_enabled": false,
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_left",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_left",
                            // 가로/세로 크기
                            "size": [ 8, 8 ],
                            // 기준점에서 이동하는 거리
                            "offset": [ 156, "2.5% + 14px" ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "topbar_title_text@rainbowpie_ui_common.title_text": {
                            // 완전히 제거(공간도 없음)
                            "ignored": "(not $rainbowpie_ui_flag_1c167cde)",
                            // 오버라이드 가능한 변수
                            "$title_text_scale": 2.4,
                            // 기준점에서 이동하는 거리
                            "offset": [ 6, 0 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_left",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_left"
                          }
                        },
                        {
                          // ???/?? ??
                          "pixelart_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%c", "100%c" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ -8, -45 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_right",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_right",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 32,
                            // 완전히 제거(공간도 없음)
                            "ignored": "(not $rainbowpie_ui_flag_start_pixelart)",
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "niko_oneshot@rainbowpieui_pixelart.niko_oneshot": {
                                  // 오버라이드 가능한 변수
                                  "$pixel_size": [ 2, 2 ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "more_play_option": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 가로/세로 크기
                            "size": [ "150px", "100%c" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ 8, 0 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 30,
                            // 완전히 제거(공간도 없음)
                            "ignored": "(not $rainbowpie_ui_flag_2f8a5e27)",
                            // 보이기/숨기기(공간 유지)
                            "visible": false,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // ?? ??
                                "source_control_name": "show_more_option",
                                // 계산식/참조 값
                                "source_property_name": "#toggle_state",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible"
                              }
                            ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "more_option_button@rainbowpieui_start.more_option_toggle_base": {
                                  // 가로/세로 크기
                                  "size": [ "100%", 32 ],
                                  // 오버라이드 가능한 변수
                                  "$icon_texture_name": "back",
                                  // 오버라이드 가능한 변수
                                  "$button_text": "menu.openMainMenu",
                                  // 오버라이드 가능한 변수
                                  "$button_content": "rainbowpieui_start.startv2_big_button_panel",
                                  // 오버라이드 가능한 변수
                                  "$toggle_group_forced_index": 1001,
                                  // 오버라이드 가능한 변수
                                  "$toggle_view_binding_name": "hide_more_option",
                                  // 오버라이드 가능한 변수
                                  "$focus_id": "back_button",
                                  // 오버라이드 가능한 변수
                                  "$focus_override_up": "servers_button",
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 30,
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // ?? ??
                                      "source_control_name": "show_more_option",
                                      // 계산식/참조 값
                                      "source_property_name": "#toggle_state",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#enabled"
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "more_option_button_padding": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ 0, 4 ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "quickplay_button@rainbowpieui_start.startv2_big_button_template": {
                                  // 가로/세로 크기
                                  "size": [ "100%", 32 ],
                                  // 오버라이드 가능한 변수
                                  "$icon_texture_name": "quickplay",
                                  // 오버라이드 가능한 변수
                                  "$button_text": "menu.quickplay",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.menu_get_started"
                                }
                              },
                              {
                                // ???/?? ??
                                "quickplay_button_padding": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ 0, 4 ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "realms_button@rainbowpieui_start.startv2_big_button_template": {
                                  // 가로/세로 크기
                                  "size": [ "100%", 32 ],
                                  // 오버라이드 가능한 변수
                                  "$icon_texture_name": "realms",
                                  // 오버라이드 가능한 변수
                                  "$button_text": "menu.realmsServer",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.menu_realms",
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#realms_promo_visible",
                                      // 가져온 값을 다른 속성으로 연결
                                      "binding_name_override": "#visible"
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "realms_button_padding": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ 0, 4 ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#realms_promo_visible",
                                      // 가져온 값을 다른 속성으로 연결
                                      "binding_name_override": "#visible"
                                    }
                                  ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "servers_button@rainbowpieui_start.startv2_big_button_template": {
                                  // 가로/세로 크기
                                  "size": [ "100%", 32 ],
                                  // 오버라이드 가능한 변수
                                  "$icon_texture_name": "servers",
                                  // 오버라이드 가능한 변수
                                  "$button_text": "menu.servers",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.menu_servers",
                                  // 오버라이드 가능한 변수
                                  "$focus_id": "servers_button"
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "button_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 가로/세로 크기
                            "size": [ "150px", "100%c" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ 8, 0 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 30,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // ?? ??
                                "source_control_name": "show_more_option",
                                // 계산식/참조 값
                                "source_property_name": "(not #toggle_state)",
                                // 결과가 들어갈 속성
                                "target_property_name": "#visible",
                                // 완전히 제거(공간도 없음)
                                "ignored": "(not $rainbowpie_ui_flag_2f8a5e27)"
                              }
                            ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "play_button_stack": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 가로/세로 크기
                                  "size": [ "100%", "100%cm" ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "play_button@rainbowpieui_start.startv2_big_button_template": {
                                        // 가로/세로 크기
                                        "size": [ "fill", 32 ],
                                        // 오버라이드 가능한 변수
                                        "$icon_texture_name": "play",
                                        // 오버라이드 가능한 변수
                                        "$pressed_button_name": "$play_button_target",
                                        // 오버라이드 가능한 변수
                                        "$button_text": "menu.play",
                                        // 오버라이드 가능한 변수
                                        "$focus_id": "play_button",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_up": "profile_button"
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "servers_button@common_buttons.light_content_button": {
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "(not $rainbowpie_ui_flag_50d7b9e9)",
                                        // 오버라이드 가능한 변수
                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_desc_enabled": true,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_desc_text": "menu.servers",
                                        // 오버라이드 가능한 변수
                                        "$pressed_button_name": "button.menu_servers",
                                        // 오버라이드 가능한 변수
                                        "$button_content": "rainbowpieui_start.servers_icon",
                                        // 가로/세로 크기
                                        "size": [ "100%y", 32 ],
                                        // 오버라이드 가능한 변수
                                        "$focus_override_up": "profile_button"
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "quickplay_button@common_buttons.light_content_button": {
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "((not $rainbowpie_ui_flag_be13f8d7) or $rainbowpie_ui_flag_2f8a5e27)",
                                        // 오버라이드 가능한 변수
                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_desc_enabled": true,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_desc_text": "menu.quickplay",
                                        // 오버라이드 가능한 변수
                                        "$pressed_button_name": "button.menu_get_started",
                                        // 오버라이드 가능한 변수
                                        "$button_content": "rainbowpieui_start.get_started_icon",
                                        // 가로/세로 크기
                                        "size": [ "100%y", 32 ],
                                        // 오버라이드 가능한 변수
                                        "$focus_override_up": "profile_button"
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "more_option_button@rainbowpieui_start.more_option_toggle_base": {
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "(not $rainbowpie_ui_flag_2f8a5e27)",
                                        // 가로/세로 크기
                                        "size": [ "100%y", 32 ],
                                        // 오버라이드 가능한 변수
                                        "$toggle_group_forced_index": 1000,
                                        // 오버라이드 가능한 변수
                                        "$toggle_view_binding_name": "show_more_option",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_up": "profile_button",
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": 30,
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 계산/조건 결과를 연결
                                            "binding_type": "view",
                                            // ?? ??
                                            "source_control_name": "show_more_option",
                                            // 계산식/참조 값
                                            "source_property_name": "(not #toggle_state)",
                                            // 결과가 들어갈 속성
                                            "target_property_name": "#enabled"
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "play_button_padding": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ 0, 4 ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "settings_button@rainbowpieui_start.startv2_big_button_template": {
                                  // 오버라이드 가능한 변수
                                  "$icon_texture_name": "settings",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.menu_settings",
                                  // 오버라이드 가능한 변수
                                  "$button_text": "menu.settings"
                                }
                              },
                              {
                                // ???/?? ??
                                "settings_button_padding": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ 0, 4 ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "store_button@rainbowpieui_start.startv2_big_button_template": {
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "(($trial and not $use_single_column_for_buttons) or $rainbowpie_ui_flag_1d6d26cc)",
                                  // 오버라이드 가능한 변수
                                  "$icon_texture_name": "marketplace",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.menu_store",
                                  // 오버라이드 가능한 변수
                                  "$button_text": "menu.store",
                                  // 오버라이드 가능한 변수
                                  "$focus_override_right": "bottom_button"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "store_button_with_custom_controls@rainbowpieui_start.startv2_big_button_template": {
                                  // 오버라이드 가능한 변수
                                  "$button_content": "rainbowpieui_start.startv2_store_button_panel",
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "(($trial and not $use_single_column_for_buttons) or (not $rainbowpie_ui_flag_1d6d26cc))",
                                  // 오버라이드 가능한 변수
                                  "$icon_texture_name": "marketplace",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.menu_store",
                                  // 오버라이드 가능한 변수
                                  "$button_text": "menu.store",
                                  // 오버라이드 가능한 변수
                                  "$focus_override_right": "bottom_button",
                                  // 입력 키/버튼과 동작 연결
                                  "button_mappings": [
                                    {
                                      // 어떤 입력을 받을지
                                      "from_button_id": "button.menu_select",
                                      // 어떤 동작을 실행할지
                                      "to_button_id": "$pressed_button_name",
                                      // 입력 시점(pressed 등)
                                      "mapping_type": "pressed"
                                    },
                                    {
                                      // 어떤 입력을 받을지
                                      "from_button_id": "button.menu_ok",
                                      // 어떤 동작을 실행할지
                                      "to_button_id": "$pressed_button_name",
                                      // 입력 시점(pressed 등)
                                      "mapping_type": "pressed"
                                    },
                                    {
                                      // 어떤 동작을 실행할지
                                      "to_button_id": "store_button.is_hovered",
                                      // 입력 시점(pressed 등)
                                      "mapping_type": "pressed"
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "store_button_padding": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ 0, 4 ],
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "($trial and not $use_single_column_for_buttons)"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "profile_button@rainbowpieui_start.startv2_big_button_template": {
                                  // 오버라이드 가능한 변수
                                  "$button_content": "rainbowpieui_start.startv2_skin_button_panel",
                                  // 오버라이드 가능한 변수
                                  "$pressed_button_name": "button.to_profile_screen",
                                  // 오버라이드 가능한 변수
                                  "$button_text": "profileScreen.header",
                                  // 오버라이드 가능한 변수
                                  "$focus_id": "profile_button",
                                  // 오버라이드 가능한 변수
                                  "$focus_override_right": "bottom_button"
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "online_button_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": "$online_button_size",
                            // 오버라이드 가능한 변수
                            "$online_button_size": [ "100%c", "28px" ],
                            // 기준점에서 이동하는 거리
                            "offset": "$online_button_offset",
                            // 오버라이드 가능한 변수
                            "$online_button_offset": [ -8, 8 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_right",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_right",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 30,
                            // 조건에 따라 변수 값을 바꾸기
                            "variables": [
                              {
                                // 이 조건이 맞으면 적용
                                "requires": "$rainbowpie_ui_flag_1c167cde",
                                // 오버라이드 가능한 변수
                                "$online_button_size": [ "100%c", "28px" ],
                                // 오버라이드 가능한 변수
                                "$online_button_offset": [ -1, 1 ]
                              }
                            ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "button_stack_panel": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 가로/세로 크기
                                  "size": [ "100%c", "100%" ],
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "left_middle",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "left_middle",
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "profile_button@common_buttons.light_content_button": {
                                        // 오버라이드 가능한 변수
                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_form_fitting_button",
                                        // 오버라이드 가능한 변수
                                        "$button_content_size_override": [ "100%c", "100%c" ],
                                        // 오버라이드 가능한 변수
                                        "$button_image_size_override": [ "100%c", "100%c" ],
                                        // 오버라이드 가능한 변수
                                        "$button_type_panel": "rainbowpieui_start.startv2_profile_button_panel",
                                        // 오버라이드 가능한 변수
                                        "$pressed_button_name": "button.menu_profile",
                                        // 가로/세로 크기
                                        "size": [ "100%c", "100%" ]
                                      }
                                    },
                                    {
                                      // ???/?? ??
                                      "profile_button_padding": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ 4, 0 ]
                                      }
                                    },
                                    {
                                      // ???/?? ??
                                      "xbl_signin_panel": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ "100%c", "100%" ],
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 가져올 값 이름
                                            "binding_name": "#sign_in_visible",
                                            // 가져온 값을 다른 속성으로 연결
                                            "binding_name_override": "#visible"
                                          }
                                        ],
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "xbl_signin_button@start.xbl_signin_button": {
                                              // 오버라이드 가능한 변수
                                              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_form_fitting_button",
                                              // 오버라이드 가능한 변수
                                              "$button_content_size_override": [ "100%c", "100%c" ],
                                              // 오버라이드 가능한 변수
                                              "$button_image_size_override": [ "100%c + 8px", "28px" ],
                                              // 가로/세로 크기
                                              "size": [ "100%c", "100%" ],
                                              // 오버라이드 가능한 변수
                                              "$form_fitting_min_size": [ 44, 0 ]
                                            }
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      // ???/?? ??
                                      "online_buttons": {
                                        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                        "type": "stack_panel",
                                        // 쌓는 방향(가로/세로)
                                        "orientation": "horizontal",
                                        // 가로/세로 크기
                                        "size": [ "100%c", "100%" ],
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 가져올 값 이름
                                            "binding_name": "(not #sign_in_visible)",
                                            // 가져온 값을 다른 속성으로 연결
                                            "binding_name_override": "#visible"
                                          }
                                        ],
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "achievements_button@start.achievements_button": {
                                              // 오버라이드 가능한 변수
                                              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                              // 오버라이드 가능한 변수
                                              "$button_image_size": [ "100%", "100%" ],
                                              // 가로/세로 크기
                                              "size": [ "100%y", "100%" ]
                                            }
                                          },
                                          {
                                            // ???/?? ??
                                            "achievements_button_padding": {
                                              // 패널: 다른 부품을 담는 바닥판
                                              "type": "panel",
                                              // 가로/세로 크기
                                              "size": [ 4, 0 ]
                                            }
                                          },
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "inbox_button@start.inbox_button": {
                                              // 오버라이드 가능한 변수
                                              "$button_content": "rainbowpieui_start.inbox_icon",
                                              // 오버라이드 가능한 변수
                                              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                              // 오버라이드 가능한 변수
                                              "$button_image_size": [ "100%", "100%" ],
                                              // 가로/세로 크기
                                              "size": [ "100%y", "100%" ]
                                            }
                                          },
                                          {
                                            // ???/?? ??
                                            "inbox_button_padding": {
                                              // 패널: 다른 부품을 담는 바닥판
                                              "type": "panel",
                                              // 가로/세로 크기
                                              "size": [ 4, 0 ]
                                            }
                                          },
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "realms_invite_button@common_buttons.light_content_button": {
                                              // 완전히 제거(공간도 없음)
                                              "ignored": true,
                                              // 오버라이드 가능한 변수
                                              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                              // 오버라이드 가능한 변수
                                              "$button_image_size": [ "100%", "100%" ],
                                              // 오버라이드 가능한 변수
                                              "$pressed_button_name": "button.menu_invite_notification",
                                              // 오버라이드 가능한 변수
                                              "$button_content": "rainbowpieui_start.invite_notification_icon",
                                              // 가로/세로 크기
                                              "size": [ "100%y", "100%" ]
                                            }
                                          },
                                          {
                                            // ???/?? ??
                                            "realms_invite_button_padding": {
                                              // 완전히 제거(공간도 없음)
                                              "ignored": true,
                                              // 패널: 다른 부품을 담는 바닥판
                                              "type": "panel",
                                              // 가로/세로 크기
                                              "size": [ 4, 0 ]
                                            }
                                          },
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "friends_button@common_buttons.light_content_button": {
                                              // 오버라이드 가능한 변수
                                              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                              // 오버라이드 가능한 변수
                                              "$button_image_size": [ "100%", "100%" ],
                                              // 오버라이드 가능한 변수
                                              "$pressed_button_name": "button.friends_drawer",
                                              // 오버라이드 가능한 변수
                                              "$button_content": "rainbowpieui_start.friends_icon",
                                              // 가로/세로 크기
                                              "size": [ "100%y", "100%" ]
                                            }
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      // ???/?? ??
                                      "close_button_padding": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ 4, 0 ]
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "close_button@common_buttons.light_content_button": {
                                        // 오버라이드 가능한 변수
                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_default_color": [ 0.85098, 0.301961, 0.301961 ],
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_hover_color": [ 0.85098, 0.301961, 0.301961 ],
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_pressed_color": [ 0.85098, 0.301961, 0.301961 ],
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_default_alpha": 0.5,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_hover_alpha": 0.4,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_pressed_alpha": 0.4,
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_text_default_color": [ 1.0, 1.0, 1.0 ],
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_text_hover_color": [ 1.0, 1.0, 1.0 ],
                                        // 오버라이드 가능한 변수
                                        "$rainbowpie_localui_button_text_pressed_color": [ 1.0, 1.0, 1.0 ],
                                        // 오버라이드 가능한 변수
                                        "$button_image_size": [ "100%", "100%" ],
                                        // 오버라이드 가능한 변수
                                        "$pressed_button_name": "button.menu_exit",
                                        // 오버라이드 가능한 변수
                                        "$button_content": "rainbowpieui_start.close_button_icon",
                                        // 가로/세로 크기
                                        "size": [ "100%y", "100%" ]
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "bottom_button_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%c", "28px" ],
                            // 기준점에서 이동하는 거리
                            "offset": [ -8, -17 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_right",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_right",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 30,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "button_stack_panel": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 가로/세로 크기
                                  "size": [ "100%c", "100%" ],
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "left_middle",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "left_middle",
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // ???/?? ??
                                      "gathering_panel": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ "100%c", "100%" ],
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": 32,
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "$rainbowpie_ui_flag_start_gathering_panel_ignored",
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 가져올 값 이름
                                            "binding_name": "#gathering_enabled"
                                          },
                                          {
                                            // 가져올 값 이름
                                            "binding_name": "#gathering_button_text"
                                          },
                                          {
                                            // 계산/조건 결과를 연결
                                            "binding_type": "view",
                                            // 계산식/참조 값
                                            "source_property_name": "(#gathering_button_text + ',')",
                                            // 결과가 들어갈 속성
                                            "target_property_name": "#gathering_name"
                                          },
                                          {
                                            // 계산/조건 결과를 연결
                                            "binding_type": "view",
                                            // 계산식/참조 값
                                            "source_property_name": "(not (($rainbowpie_ui_flag_start_gathering_denylist - #gathering_name) = $rainbowpie_ui_flag_start_gathering_denylist))",
                                            // 결과가 들어갈 속성
                                            "target_property_name": "#gathering_denylisted"
                                          },
                                          {
                                            // 계산/조건 결과를 연결
                                            "binding_type": "view",
                                            // 계산식/참조 값
                                            "source_property_name": "(#gathering_enabled and (not #gathering_denylisted))",
                                            // 결과가 들어갈 속성
                                            "target_property_name": "#visible"
                                          }
                                        ],
                                        // 이 안에 들어가는 부품 목록
                                        "controls": [
                                          {
                                            // ???/?? ??
                                            "badge_and_caption_panel": {
                                              // 패널: 다른 부품을 담는 바닥판
                                              "type": "panel",
                                              // 가로/세로 크기
                                              "size": [ 0, "100%" ],
                                              // 이 안에 들어가는 부품 목록
                                              "controls": [
                                                {
                                                  // 다른 템플릿을 가져와서 확장(상속)
                                                  "badge_and_caption@start.badge_and_caption": {
                                                    // 기준점에서 이동하는 거리
                                                    "offset": [ "0px", -28 ],
                                                    // 기준점(어디에서 시작할지)
                                                    "anchor_from": "bottom_left",
                                                    // 붙일 위치(어디에 놓을지)
                                                    "anchor_to": "bottom_left"
                                                  }
                                                }
                                              ]
                                            }
                                          },
                                          {
                                            // 다른 템플릿을 가져와서 확장(상속)
                                            "gathering_button@start.gathering_button": {
                                              // 가로/세로 크기
                                              "size": [ "100%c", "100%" ],
                                              // 오버라이드 가능한 변수
                                              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_form_fitting_button",
                                              // 오버라이드 가능한 변수
                                              "$button_image_size_override": [ "100%c + 8px", 28 ],
                                              // 기준점(어디에서 시작할지)
                                              "anchor_from": "right_middle",
                                              // 붙일 위치(어디에 놓을지)
                                              "anchor_to": "right_middle"
                                            }
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      // ???/?? ??
                                      "gathering_panel_padding": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ 4, 0 ],
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "$rainbowpie_ui_flag_start_gathering_panel_ignored",
                                        // 게임 값과 연결하는 규칙 목록
                                        "bindings": [
                                          {
                                            // 가져올 값 이름
                                            "binding_name": "#gathering_enabled"
                                          },
                                          {
                                            // 가져올 값 이름
                                            "binding_name": "#gathering_button_text"
                                          },
                                          {
                                            // 계산/조건 결과를 연결
                                            "binding_type": "view",
                                            // 계산식/참조 값
                                            "source_property_name": "(#gathering_button_text + ',')",
                                            // 결과가 들어갈 속성
                                            "target_property_name": "#gathering_name"
                                          },
                                          {
                                            // 계산/조건 결과를 연결
                                            "binding_type": "view",
                                            // 계산식/참조 값
                                            "source_property_name": "(not (($rainbowpie_ui_flag_start_gathering_denylist - #gathering_name) = $rainbowpie_ui_flag_start_gathering_denylist))",
                                            // 결과가 들어갈 속성
                                            "target_property_name": "#gathering_denylisted"
                                          },
                                          {
                                            // 계산/조건 결과를 연결
                                            "binding_type": "view",
                                            // 계산식/참조 값
                                            "source_property_name": "(#gathering_enabled and (not #gathering_denylisted))",
                                            // 결과가 들어갈 속성
                                            "target_property_name": "#visible"
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "icon_maker_button@rainbowpieui_start.icon_maker_toggle_base": {
                                        // 가로/세로 크기
                                        "size": [ "100%y", "100%" ],
                                        // 오버라이드 가능한 변수
                                        "$button_image_size": [ "100%", "100%" ],
                                        // 오버라이드 가능한 변수
                                        "$toggle_group_forced_index": 1000,
                                        // 오버라이드 가능한 변수
                                        "$toggle_view_binding_name": "show_icon_maker",
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "(not $rainbowpie_ui_flag_icon_maker)"
                                      }
                                    },
                                    {
                                      // ???/?? ??
                                      "icon_maker_button_padding": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ 4, 0 ],
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "(not $rainbowpie_ui_flag_icon_maker)"
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "vanilla_button@rainbowpieui_start.vanilla_button": {
                                        // 가로/세로 크기
                                        "size": [ "100%y", "100%" ],
                                        // 오버라이드 가능한 변수
                                        "$button_image_size": [ "100%", "100%" ],
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "(not $rainbowpie_ui_flag_282dd0a5)",
                                        // 오버라이드 가능한 변수
                                        "$focus_id": "bottom_button",
                                        // 오버라이드 가능한 변수
                                        "$focus_override_left": "profile_button"
                                      }
                                    },
                                    {
                                      // ???/?? ??
                                      "vanilla_button_padding": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ 4, 0 ],
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "(not $rainbowpie_ui_flag_282dd0a5)"
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "music_button@rainbowpieui_start.music_button": {
                                        // 오버라이드 가능한 변수
                                        "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
                                        // 오버라이드 가능한 변수
                                        "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
                                        // 오버라이드 가능한 변수
                                        "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
                                        // 오버라이드 가능한 변수
                                        "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
                                        // 오버라이드 가능한 변수
                                        "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
                                        // 오버라이드 가능한 변수
                                        "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
                                        // 오버라이드 가능한 변수
                                        "$button_content": "rainbowpieui_start.music_icon",
                                        // 가로/세로 크기
                                        "size": [ "100%y", "100%" ],
                                        // 오버라이드 가능한 변수
                                        "$button_image_size": [ "100%", "100%" ],
                                        // 조건에 따라 변수 값을 바꾸기
                                        "variables": [
                                          {
                                            // 이 조건이 맞으면 적용
                                            "requires": "(not $rainbowpie_ui_flag_282dd0a5)",
                                            // 오버라이드 가능한 변수
                                            "$focus_id": "bottom_button",
                                            // 오버라이드 가능한 변수
                                            "$focus_override_left": "profile_button"
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      // ???/?? ??
                                      "music_button_padding": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ 4, 0 ],
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "((not $rainbowpie_ui_flag_82d2c0e7) or ($rainbowpie_ui_theme_background_texture = ''))"
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "background_button@rainbowpieui_start.background_dialog_toggle_base": {
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "((not $rainbowpie_ui_flag_82d2c0e7) or ($rainbowpie_ui_theme_background_texture = ''))",
                                        // 가로/세로 크기
                                        "size": [ "100%y", "100%" ],
                                        // 오버라이드 가능한 변수
                                        "$button_image_size": [ "100%", "100%" ],
                                        // 오버라이드 가능한 변수
                                        "$toggle_group_forced_index": 1000,
                                        // 오버라이드 가능한 변수
                                        "$toggle_view_binding_name": "open_background_dialog",
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": 30
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "version_panel": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_middle",
                            // 기준점에서 이동하는 거리
                            "offset": [ 0, -3 ],
                            // 가로/세로 크기
                            "size": [ "100% - 16px", 14 ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 10,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "rainbowpie_version": {
                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                  "type": "stack_panel",
                                  // 쌓는 방향(가로/세로)
                                  "orientation": "horizontal",
                                  // 가로/세로 크기
                                  "size": [ "100%c", "100%cm" ],
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "left_middle",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "left_middle",
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "rainbowpie_version_label@rainbowpie_ui_common.text_label": {
                                        // 가로/세로 크기
                                        "size": [ "default", 10 ],
                                        // ?? ??
                                        "text_alignment": "left",
                                        // 보여줄 글자
                                        "text": "($mintui_pack_name + ' ' + $rainbowpieui_branch_display_name + ' ' + $rainbowpieui_engine_version_name + '.' + $rainbowpieui_patch_version + '.' + $rainbowpieui_hotfix_version)",
                                        // ?? (R,G,B,A)
                                        "color": [ 0.85, 0.85, 0.85 ],
                                        // ???
                                        "alpha": 0.85,
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": 1
                                      }
                                    },
                                    {
                                      // ???/?? ??
                                      "spacer": {
                                        // 패널: 다른 부품을 담는 바닥판
                                        "type": "panel",
                                        // 가로/세로 크기
                                        "size": [ 1, 0 ]
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "addition_text@rainbowpie_ui_common.text_label": {
                                        // 보이기/숨기기(공간 유지)
                                        "visible": "(not ($rainbowpie_ui_flag_resourcepack_displayname = ''))",
                                        // 가로/세로 크기
                                        "size": [ "default", 10 ],
                                        // ?? ??
                                        "text_alignment": "left",
                                        // 보여줄 글자
                                        "text": "('| ' + $rainbowpie_ui_flag_resourcepack_displayname)",
                                        // ?? (R,G,B,A)
                                        "color": [ 0.85, 0.85, 0.85 ],
                                        // ???
                                        "alpha": 0.85,
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": 1
                                      }
                                    },
                                    {
                                      // 다른 템플릿을 가져와서 확장(상속)
                                      "addition_text_ci@rainbowpie_ui_common.text_label": {
                                        // 완전히 제거(공간도 없음)
                                        "ignored": "(not $rainbowpieui_ci)",
                                        // 보이기/숨기기(공간 유지)
                                        "visible": "(not ($rainbowpie_ui_flag_resourcepack_identifier = ''))",
                                        // 가로/세로 크기
                                        "size": [ "default", 10 ],
                                        // ?? ??
                                        "text_alignment": "left",
                                        // 보여줄 글자
                                        "text": "('\" ' + '(' + $rainbowpie_ui_flag_resourcepack_identifier + ')' + '\"')",
                                        // ?? (R,G,B,A)
                                        "color": [ 0.85, 0.85, 0.85 ],
                                        // ???
                                        "alpha": 0.85,
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": 1
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "minecraft_version_label@rainbowpie_ui_common.text_label": {
                                  // 기준점(어디에서 시작할지)
                                  "anchor_from": "right_middle",
                                  // 붙일 위치(어디에 놓을지)
                                  "anchor_to": "right_middle",
                                  // 가로/세로 크기
                                  "size": [ "default", 10 ],
                                  // ?? ??
                                  "text_alignment": "right",
                                  // 보여줄 글자
                                  "text": "#text",
                                  // ?? (R,G,B,A)
                                  "color": [ 0.85, 0.85, 0.85 ],
                                  // ???
                                  "alpha": 0.85,
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 1,
                                  // ?? ??
                                  "shadow": false,
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#version"
                                    },
                                    {
                                      // 가져올 값 이름
                                      "binding_name": "#development_version"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "(#version + ' (' + #development_version + ')')",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#text"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "startv2_topbar_background": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": [ "100%", 30 ],
                // ???
                "alpha": "$rainbowpie_ui_theme_topbar_background_alpha",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_topbar_background_color",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 8,
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_flag_1c167cde)",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "blur_layer_startv2_topbar@mintui_background.background_blur": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_flag_1c167cde)",
                // 오버라이드 가능한 변수
                "$background_offset": [ 0, "-100% + 30px" ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ 0, "100% - 30px" ],
                // 오버라이드 가능한 변수
                "$background_layer": 2
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "blur_layer_version_panel@mintui_background.background_blur": {
                // 완전히 제거(공간도 없음)
                "ignored": "$rainbowpie_ui_flag_8dcce82d",
                // 오버라이드 가능한 변수
                "$background_offset": [ 0, "100% - 12px" ],
                // 오버라이드 가능한 변수
                "$background_children_offset": [ 0, "-100% + 12px" ],
                // 오버라이드 가능한 변수
                "$background_layer": 2,
                // 오버라이드 가능한 변수
                "$background_anims": [
                  "@rainbowpieui_start.version_background_back_animation_push1",
                  "@rainbowpieui_start.version_background_back_animation_pop1",
                  "@rainbowpieui_start.version_background_animation_push1",
                  "@rainbowpieui_start.version_background_animation_pop1"
                ],
                // 오버라이드 가능한 변수
                "$background_children_anims": [
                  "@rainbowpieui_start.version_background_back_animation_push2",
                  "@rainbowpieui_start.version_background_back_animation_pop2",
                  "@rainbowpieui_start.version_background_animation_push2",
                  "@rainbowpieui_start.version_background_animation_pop2"
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "version_panel@rainbowpie_ui_common.text_background": {
                // 완전히 제거(공간도 없음)
                "ignored": "$rainbowpie_ui_flag_8dcce82d",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "100%", 12 ],
                // ????? ?? ?
                "animation_reset_name": "screen_animation_reset",
                // 애니메이션 목록
                "anims": [
                  "@rainbowpieui_start.version_panel_back_animation_push",
                  "@rainbowpieui_start.version_panel_back_animation_pop",
                  "@rainbowpieui_start.version_panel_animation_push",
                  "@rainbowpieui_start.version_panel_animation_pop"
                ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "rainbowpie_version_label@rainbowpie_ui_common.text_label": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "$rainbowpieui_ci",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_device_os|default": "NULL",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_device_osc|default": "NULL",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_control_mode|default": "NULL",
                      // 기준점에서 이동하는 거리
                      "offset": [ 2, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 가로/세로 크기
                      "size": [ "80% - 2px", 10 ],
                      // ?? ??
                      "text_alignment": "left",
                      // 보여줄 글자
                      "text": "($mintui_pack_name + ' ' + $rainbowpieui_branch_display_name + ' ' + $rainbowpieui_engine_version_name + '.' + $rainbowpieui_patch_version + '.' + $rainbowpieui_hotfix_version + ' | ' + $rainbowpie_localui_this_device_osc + ' - ' + $rainbowpie_localui_this_device_os + ' | ' + $rainbowpie_localui_this_control_mode)",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 조건에 따라 변수 값을 바꾸기
                      "variables": [
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$game_pad",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_control_mode": "Controller"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$mouse",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_control_mode": "Keyboard & Mouse"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$touch",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_control_mode": "Touch"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$win10_edition",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Windows"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_win10_arm",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Windows ARM"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_windows_10_mobile",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Windows Mobile"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$xbox_one",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Xbox One"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_ios",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "iOS"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$osx_edition",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Mac OS"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_android",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Android"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$google_os",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_osc": "Google"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$apple_os",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_osc": "Apple"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$microsoft_os",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_osc": "Microsoft"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$nx_os",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_osc": "NX"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_ps4",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "PS4"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$console_edition",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Console"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "rainbowpie_ci_version_label@rainbowpie_ui_common.text_label": {
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpieui_ci)",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_device_os|default": "NULL",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_device_osc|default": "NULL",
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_this_control_mode|default": "NULL",
                      // 기준점에서 이동하는 거리
                      "offset": [ 2, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 가로/세로 크기
                      "size": [ "80% - 2px", 10 ],
                      // ?? ??
                      "text_alignment": "left",
                      // 보여줄 글자
                      "text": "($mintui_pack_name + ' ' + $rainbowpieui_branch_display_name + ' ' + $rainbowpieui_engine_version_name + '.' + $rainbowpieui_patch_version + '.' + $rainbowpieui_hotfix_version + ' ' + $rainbowpieui_branch_name + '/' + $rainbowpieui_commit_id + ' | ' + $rainbowpie_localui_this_device_osc + ' - ' + $rainbowpie_localui_this_device_os + ' | ' + $rainbowpie_localui_this_control_mode)",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 조건에 따라 변수 값을 바꾸기
                      "variables": [
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$game_pad",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_control_mode": "Controller"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$mouse",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_control_mode": "Keyboard & Mouse"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$touch",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_control_mode": "Touch"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$win10_edition",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Windows"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_win10_arm",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Windows ARM"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_windows_10_mobile",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Windows Mobile"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$xbox_one",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Xbox One"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_ios",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "iOS"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$osx_edition",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Mac OS"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_android",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Android"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$google_os",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_osc": "Google"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$apple_os",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_osc": "Apple"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$microsoft_os",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_osc": "Microsoft"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$nx_os",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_osc": "NX"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$is_ps4",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "PS4"
                        },
                        {
                          // 이 조건이 맞으면 적용
                          "requires": "$console_edition",
                          // 오버라이드 가능한 변수
                          "$rainbowpie_localui_this_device_os": "Console"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "minecraft_version_label@rainbowpie_ui_common.text_label": {
                      // 기준점에서 이동하는 거리
                      "offset": [ -2, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",
                      // 가로/세로 크기
                      "size": [ "20% - 2px", 10 ],
                      // ?? ??
                      "text_alignment": "right",
                      // 보여줄 글자
                      "text": "#version",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#version"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ],
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#is_music_player_ui_opened": false,
            // ???/??? ?
            "#is_vanilla_start_ui_opened": false
          },
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "open_music_player",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#is_music_player_ui_opened",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_feature_musicplayer)"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "vanilla_startui",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#is_vanilla_start_ui_opened",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_282dd0a5)"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (#is_music_player_ui_opened or #is_vanilla_start_ui_opened))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "vanilla_startui_content": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_282dd0a5)",
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "screen_content@rainbowpie_ui_common.screen_content": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screen_ingame_anim1": true,
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screen_ingame_anim2": "($rainbowpie_ui_flag_8dcce82d and $rainbowpie_ui_flag_fbadd01f)",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_screen_content": [
                  {
                    // ???/?? ??
                    "bottom_button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%c", "28px" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ -8, -17 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_right",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_right",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 30,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "button_stack_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 가로/세로 크기
                            "size": [ "100%c", "100%" ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle",
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "startui_button@rainbowpieui_start.startui_button": {
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$button_image_size": [ "100%", "100%" ],
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "(not $rainbowpie_ui_flag_282dd0a5)"
                                }
                              },
                              {
                                // ???/?? ??
                                "vanilla_button_padding": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ 4, 0 ],
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "(not $rainbowpie_ui_flag_282dd0a5)"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "music_button@rainbowpieui_start.music_button": {
                                  // 오버라이드 가능한 변수
                                  "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
                                  // 오버라이드 가능한 변수
                                  "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
                                  // 오버라이드 가능한 변수
                                  "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
                                  // 오버라이드 가능한 변수
                                  "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
                                  // 오버라이드 가능한 변수
                                  "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
                                  // 오버라이드 가능한 변수
                                  "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
                                  // 오버라이드 가능한 변수
                                  "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
                                  // 오버라이드 가능한 변수
                                  "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
                                  // 오버라이드 가능한 변수
                                  "$button_content": "rainbowpieui_start.music_icon",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$button_image_size": [ "100%", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$toggle_view_binding_name": "open_music_player_vanilla"
                                }
                              },
                              {
                                // ???/?? ??
                                "music_button_padding": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ 4, 0 ],
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "((not $rainbowpie_ui_flag_82d2c0e7) or ($rainbowpie_ui_theme_background_texture = ''))"
                                }
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "background_button@rainbowpieui_start.background_dialog_toggle_base": {
                                  // 완전히 제거(공간도 없음)
                                  "ignored": "((not $rainbowpie_ui_flag_82d2c0e7) or ($rainbowpie_ui_theme_background_texture = ''))",
                                  // 가로/세로 크기
                                  "size": [ "100%y", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$button_image_size": [ "100%", "100%" ],
                                  // 오버라이드 가능한 변수
                                  "$toggle_group_forced_index": 1000,
                                  // 오버라이드 가능한 변수
                                  "$toggle_view_binding_name": "open_background_dialog_vanilla",
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 30
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "rainbowpie_version": {
                      // 이미지 표시
                      "type": "image",
                      // 사용할 이미지 경로
                      "texture": "textures/ui/Black",
                      // 가로/세로 크기
                      "size": [ "100%c + 4px", "100%c + 2px" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, -12 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_left",
                      // ???
                      "alpha": 0.6,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 30,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "label": {
                            // 글자 표시
                            "type": "label",
                            // ?? (R,G,B,A)
                            "color": "$main_header_text_color",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 2,
                            // 보여줄 글자
                            "text": "($mintui_pack_name + ' ' + $rainbowpieui_branch_display_name + ' ' + $rainbowpieui_engine_version_name + '.' + $rainbowpieui_patch_version + '.' + $rainbowpieui_hotfix_version)",
                            // 가로/세로 크기
                            "size": [ "default", 10 ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "startui@$screen_content": {}
                  }
                ]
              }
            }
          ],
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#is_music_player_ui_opened": false,
            // ???/??? ?
            "#is_vanilla_start_ui_opened": false
          },
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "open_music_player_vanilla",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#is_music_player_ui_opened",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_feature_musicplayer)"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "vanilla_startui",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#is_vanilla_start_ui_opened",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_282dd0a5)"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#is_vanilla_start_ui_opened and (not #is_music_player_ui_opened))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "subscreen_content": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_feature_musicplayer)",
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "music_player_screen@rainbowpie_ui_music_player.music_player_screen": {} }
          ],
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#is_music_player_ui_opened": false,
            // ???/??? ?
            "#is_music_player_ui_opened_on_vanilla": false
          },
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "open_music_player",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#is_music_player_ui_opened"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "open_music_player_vanilla",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#is_music_player_ui_opened_on_vanilla",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_282dd0a5)"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#is_music_player_ui_opened or #is_music_player_ui_opened_on_vanilla)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "version_panel_back_animation_push": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 12 ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "version_panel_back_animation_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ 0, 12 ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "version_panel_animation_push": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 12 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "version_panel_animation_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, 12 ],
    // 끝 값
    "to": [ 0, 0 ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  //

  "version_background_back_animation_push1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 12px" ],
    // 끝 값
    "to": [ 0, "100% - 0px" ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "version_background_back_animation_push2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 12px" ],
    // 끝 값
    "to": [ 0, "-100% + 0px" ],
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "version_background_back_animation_pop1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 12px" ],
    // 끝 값
    "to": [ 0, "100% - 0px" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "version_background_back_animation_pop2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_header_transition_effect_exit",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 12px" ],
    // 끝 값
    "to": [ 0, "-100% + 0px" ],
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },

  // ???/?? ??
  "version_background_animation_push1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 0px" ],
    // 끝 값
    "to": [ 0, "100% - 12px" ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "version_background_animation_push2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 0px" ],
    // 끝 값
    "to": [ 0, "-100% + 12px" ],
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "version_background_animation_pop1": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "100% - 0px" ],
    // 끝 값
    "to": [ 0, "100% - 12px" ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // ???/?? ??
  "version_background_animation_pop2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "$rainbowpie_ui_animation_transition_effect_entrance",
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time",
    // 시작 값
    "from": [ 0, "-100% + 0px" ],
    // 끝 값
    "to": [ 0, "-100% + 12px" ],
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "player_name_panel@rainbowpie_ui_common.text_background": {
    // 가로/세로 크기
    "size": [ 100, "100%" ],
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "right_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "right_middle",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "name_text@rainbowpie_ui_common.text_label": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4,
          // 가로/세로 크기
          "size": [ "100%", 10 ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0],
          // 보여줄 글자
          "text": "#text",
          // ?? ??
          "shadow": false,
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // ?? ??
          "text_alignment": "center",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#playername",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#text"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "change_skin_icon": {
    // 이미지 표시
    "type": "image",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 사용할 이미지 경로
    "texture": "textures/ui/hangar",
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3,
    // 기준점에서 이동하는 거리
    "offset": [ 7, 2 ],
    // 가로/세로 크기
    "size": [ 31, 15 ]
  },

  // ???/?? ??
  "xbox_live_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 40 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@rainbowpie_ui_common.text_background": {
          // 가로/세로 크기
          "size": [ "100% - 1px", "100% - 1px" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "gamerpic@start.gamerpic": {
                // 가로/세로 크기
                "size": [ 37, 37 ],
                // 기준점에서 이동하는 거리
                "offset": [ 1, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 오버라이드 가능한 변수
                "$gamerpic_visible": "#show_gamerpic"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "alex_icon@start.alex_icon": {
                // 가로/세로 크기
                "size": [ 37, 37 ],
                // 기준점에서 이동하는 거리
                "offset": [ 1, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "(not #show_gamerpic)",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "gamertag_label@rainbowpie_ui_common.text_label": {
                // 기준점에서 이동하는 거리
                "offset": [ 39, 4 ],
                // 가로/세로 크기
                "size": [ "100% - 38px", 20 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 보여줄 글자
                "text": "#gamertag_label",
                // ?? ?? ??
                "font_scale_factor": 1.2,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#gamertag_label"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "(not #sign_in_visible)",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "gamertag_label_offline@rainbowpie_ui_common.text_label": {
                // 기준점에서 이동하는 거리
                "offset": [ 39, 4 ],
                // 가로/세로 크기
                "size": [ "100% - 38px", 20 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 보여줄 글자
                "text": "#playername",
                // ?? ?? ??
                "font_scale_factor": 1.2,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#playername"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#sign_in_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "online_button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100% - 39px", 20 ],
                // 기준점에서 이동하는 거리
                "offset": [ -0.5, -0.5 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_right",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "achievements_button@common_buttons.light_text_button": {
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.menu_achievements",
                      // 오버라이드 가능한 변수
                      "$button_text": "gui.achievements",
                      // 왼쪽으로 이동할 대상
                      "focus_change_left": "FOCUS_OVERRIDE_STOP",
                      // 가로/세로 크기
                      "size": [ "100% - 40px", 20 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ -40, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_right",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_right"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "skin_button@common_buttons.light_content_button": {
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.menu_skins",
                      // 오버라이드 가능한 변수
                      "$button_content": "rainbowpieui_start.change_skin_icon",
                      // 가로/세로 크기
                      "size": [ 20, 20 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ -20, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_right",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_right"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "invite_notification_button@common_buttons.light_content_button": {
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.menu_invite_notification",
                      // 오버라이드 가능한 변수
                      "$button_content": "rainbowpieui_start.invite_notification_icon",
                      // 오른쪽으로 이동할 대상
                      "focus_change_right": "FOCUS_OVERRIDE_STOP",
                      // 가로/세로 크기
                      "size": [ 20, 20 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_right",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_right"
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "(not #sign_in_visible)",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "offline_button_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100% - 39px", 20 ],
                // 기준점에서 이동하는 거리
                "offset": [ -0.5, -0.5 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_right",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "xbl_signin_button@common_buttons.light_text_button": {
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.signin",
                      // 오버라이드 가능한 변수
                      "$button_text": "xbox.signin",
                      // 오른쪽으로 이동할 대상
                      "focus_change_right": "FOCUS_OVERRIDE_STOP",
                      // 가로/세로 크기
                      "size": [ "100% - 20px", 20 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ -20, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_right",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_right"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "skin_button@common_buttons.light_content_button": {
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.menu_skins",
                      // 오버라이드 가능한 변수
                      "$button_content": "rainbowpieui_start.change_skin_icon",
                      // 오른쪽으로 이동할 대상
                      "focus_change_right": "FOCUS_OVERRIDE_STOP",
                      // 가로/세로 크기
                      "size": [ 20, 20 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_right",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_right"
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#sign_in_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "exit_button@start.main_button": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color": [ 0.85098, 0.301961, 0.301961 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_color": [ 0.85098, 0.301961, 0.301961 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_color": [ 0.85098, 0.301961, 0.301961 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_default_color": [ 1.0, 1.0, 1.0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_hover_color": [ 1.0, 1.0, 1.0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_pressed_color": [ 1.0, 1.0, 1.0 ],
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_exit",
    // 오버라이드 가능한 변수
    "$button_text": "gui.exit"
  },

  // ???/?? ??
  "ui_mode_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/start/ui_mode')",
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 8
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "vanilla_button@common_toggles.light_ui_toggle": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text": "rainbowpie.ui.start.vanilla_tip",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text_offset": [ -10, -10 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text_anchor": "top_right",
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_282dd0a5)",
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_content": "rainbowpieui_start.ui_mode_icon",

    // 오버라이드 가능한 변수
    "$button_text_binding_type": "none",
    // 오버라이드 가능한 변수
    "$button_binding_condition": "none",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "none",
    // 오버라이드 가능한 변수
    "$button_text": "rainbowpie.ui.start.vanilla",

    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpie_startui_toggle",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 903,

    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 900,

    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "vanilla_startui",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "vanilla_startui",
        // 계산식/참조 값
        "source_property_name": "(not #toggle_state)",
        // 결과가 들어갈 속성
        "target_property_name": "#enabled",
        // 완전히 제거(공간도 없음)
        "ignored": "(not $rainbowpie_ui_flag_282dd0a5)"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "startui_button@rainbowpieui_start.vanilla_button": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_desc_text": "rainbowpie.ui.start.startui_tip",
    // 오버라이드 가능한 변수
    "$button_text": "rainbowpie.ui.start.startui",
    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 901,
    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "rainbowpie_startui",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "rainbowpie_startui",
        // 계산식/참조 값
        "source_property_name": "(not #toggle_state)",
        // 결과가 들어갈 속성
        "target_property_name": "#enabled",
        // 완전히 제거(공간도 없음)
        "ignored": "(not $rainbowpie_ui_flag_282dd0a5)"
      }
    ]
  },

  // ???/?? ??
  "music_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/start/music')",
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 8
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "music_button@rainbowpie_ui_music_player.music_player_button_toggle_base": {
    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 1000,
    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "open_music_player",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "$toggle_view_binding_name",
        // 계산식/참조 값
        "source_property_name": "(not #toggle_state)",
        // 결과가 들어갈 속성
        "target_property_name": "#enabled",
        // 완전히 제거(공간도 없음)
        "ignored": "(not $rainbowpie_ui_feature_musicplayer)"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "invite_notification_icon@start.invite_notification_icon": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "dot_panel": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ 8, 8 ],
          // 기준점에서 이동하는 거리
          "offset": [ -1, -1 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ?? (R,G,B,A)
          "color": [ 1.0, 0.0, 0.0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "notification_button_text@rainbowpie_ui_common.text_label": {
                // 글자 표시
                "type": "label",
                // ?? (R,G,B,A)
                "color": [ 1.0, 1.0, 1.0 ],
                // ?? ??
                "shadow": false,
                // 보여줄 글자
                "text": "#realms_notification_count",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#realms_notification_count"
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#realms_notification_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  }
}

stonecutter_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: stonecutter_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_stonecutter",

  // ???/?? ??
  "craft_icon": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "crafting_table@crafting.item_renderer": {
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#item_id_aux": 3801088
          }
        }
      },
      {
        // ???/?? ??
        "down_arrow": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 가로/세로 크기
          "size": [ 10, 10 ],
          // 기준점에서 이동하는 거리
          "offset": [ 2, 0 ],
          // 사용할 이미지 경로
          "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_down')",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      }
    ]
  },

  // ???/?? ??
  "stonecutter_inventory_root_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 168, 162 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "inventory_ui_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 애니메이션 목록
          "anims": [
            // "@rainbowpie_ui_animations.container_panel_exit_animation_push",
            // "@rainbowpie_ui_animations.container_panel_exit_animation_pop",
            // "@rainbowpie_ui_animations.container_panel_entrance_animation_push",
            // "@rainbowpie_ui_animations.container_panel_entrance_animation_pop"
          ],
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background_icon@rainbowpie_ui_inventory.background_icon": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory_header@rainbowpie_ui_inventory.header": {
                // 가로/세로 크기
                "size": [ "100%", "14.19753086419753%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title": "container.stonecutter",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border1_size": [ "2.380952380952381%", 0 ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_inventoryheader_title_border2_size": [ "2.380952380952381%", 0 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "common_panel@common.common_panel": {
                // 오버라이드 가능한 변수
                "$dialog_background": "rainbowpie_ui_common.inventory_background",
                // 오버라이드 가능한 변수
                "$show_close_button": false,
                // 가로/세로 크기
                "size": [ "100%", "100% - 14.19753086419753%" ],
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle"
              }
            },
            {
              // ???/?? ??
              "top_half_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "33.95061728395062%" ], // 162x55
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-50%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "input_item_slot@rainbowpie_ui_inventory_and_container.container_item": {
                      // 가로/세로 크기
                      "size": [ "100%y", "32.72727272727273%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ "22.22222222222222%", 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "stonecutter_input_items"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "result_item_slot@rainbowpie_ui_inventory_and_container.container_item": {
                      // 기준점에서 이동하는 거리
                      "offset": [ "-22.22222222222222%", 0 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",
                      // 오버라이드 가능한 변수
                      "$item_collection_name": "stonecutter_result_items",
                      // 오버라이드 가능한 변수
                      "$button_ref": "stonecutter.result_slot_button",
                      // 오버라이드 가능한 변수
                      "$item_renderer_panel_size": [ "100%y", "69.23076923076923%" ],
                      // 가로/세로 크기
                      "size": [ "100%y", "47.27272727272727%" ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "quick_craft_button@common_buttons.light_content_button": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_button_hover_border_layer": 30,
                      // 오버라이드 가능한 변수
                      "$button_image_size": [ "100%", "100%" ],
                      // 오버라이드 가능한 변수
                      "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.container_auto_place",
                      // 오버라이드 가능한 변수
                      "$button_content": "rainbowpieui_stonecutter.craft_icon",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",
                      // 가로/세로 크기
                      "size": [ "100%y", "40.74074074074074%" ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 이 컨트롤 안에서 쓰는 임시 저장소
                      "property_bag": {
                        // ???/??? ?
                        "#collection_name": "stonecutter_result_items",
                        // ???/??? ?
                        "#collection_index": 0
                      }
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "inventory@rainbowpie_ui_inventory_and_container.inventory_panel_bottom_half": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "33.33333333333333%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-14.81481481481481%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hotbar@rainbowpie_ui_inventory_and_container.hotbar_grid_template": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "96.42857142857143%", "11.11111111111111%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-1.851851851851852%" ]
              }
            }
          ]
        }
      }
    ]
  }
}

storage_management_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: storage_management_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_storage_management",

  // 다른 템플릿을 가져와서 확장(상속)
  "pack_description_sub_item@storage_management.texture_icon_text": {
    // 오버라이드 가능한 변수
    "$check_visible": true,
    // 오버라이드 가능한 변수
    "$text_controls": [
      {
        // ???/?? ??
        "panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "main_label@storage_management.common_label": {
                // 가로/세로 크기
                "size": [ "65%", 10 ],

                // 보여줄 글자
                "text": "$name_text",
                // ?? (R,G,B,A)
                "color": "$body_text_color",
                // 게임 값과 연결하는 규칙 목록
                "bindings": "$name_bindings"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "desc_label@storage_management.common_label": {
                // 가로/세로 크기
                "size": [ "100% - 4px", 20 ],

                // 오버라이드 가능한 변수
                "$description_name": "('#sub_' + $panel_prefix + _description)",
                // 오버라이드 가능한 변수
                "$description_binding_collection": "($panel_prefix + _panel)",

                // 보여줄 글자
                "text": "$description_name",
                // ?? (R,G,B,A)
                "color": "$light_button_secondary_default_text_color",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "$description_binding_collection",
                    // 가져올 값 이름
                    "binding_name": "$description_name"
                  },
                  {
                    // 목록 인덱스/현재 항목 정보 제공
                    "binding_type": "collection_details"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "glyphs_and_version": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", 10 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 기준점에서 이동하는 거리
          "offset": [ -5, 0 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "glyph_warning@storage_management.base_glyph": {
                // 오버라이드 가능한 변수
                "$binding_name": "warning",
                // 오버라이드 가능한 변수
                "$glyph_texture": "textures/ui/WarningGlyph"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "glyph_error@storage_management.base_glyph": {
                // 오버라이드 가능한 변수
                "$binding_name": "error",
                // 오버라이드 가능한 변수
                "$glyph_texture": "textures/ui/ErrorGlyph"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "glyph_update@storage_management.base_glyph": {
                // 오버라이드 가능한 변수
                "$binding_name": "update",
                // 오버라이드 가능한 변수
                "$glyph_texture": "textures/ui/UpdateGlyph"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "version_label@storage_management.common_label": {
                // 가로/세로 크기
                "size": [ "default", "default" ],

                // 오버라이드 가능한 변수
                "$version_name": "('#sub_' + $panel_prefix + _version)",
                // 오버라이드 가능한 변수
                "$version_binding_visible": "('#sub_' + $panel_prefix + _valid)",
                // 오버라이드 가능한 변수
                "$version_binding_collection": "($panel_prefix + _panel)",

                // 보여줄 글자
                "text": "$version_name",
                // ?? (R,G,B,A)
                "color": "$light_button_secondary_default_text_color",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "$version_binding_collection",
                    // 가져올 값 이름
                    "binding_name": "$version_name"
                  },
                  {
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "$version_binding_collection",
                    // 가져올 값 이름
                    "binding_name": "$version_binding_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  },
                  {
                    // 목록 인덱스/현재 항목 정보 제공
                    "binding_type": "collection_details"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_version_label": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 4, "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "driven@rainbowpieui_settings_common.driven": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 가로/세로 크기
                      "size": [ 1, 8 ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "size_label@storage_management.common_label": {
                // 가로/세로 크기
                "size": [ "default", "default" ],
                // 보여줄 글자
                "text": "$size_text",
                // ?? (R,G,B,A)
                "color": "$light_button_secondary_default_text_color",
                // 게임 값과 연결하는 규칙 목록
                "bindings": "$size_bindings"
              }
            },
            {
              // ???/?? ??
              "dev_tag": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture",
                    // 바인딩 종류(변수로 관리되는 경우도 있음)
                    "binding_type": "$texture_binding_type",
                    // 목록 이름
                    "binding_collection_name": "$texture_binding_collection",
                    // 가져올 값 이름
                    "binding_name": "$button_texture"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (('\"' + #texture - 'development_' + '\"') = #texture)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#is_development_icon_path"
                  },
                  {
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#zip_folder",
                    // 바인딩 종류(변수로 관리되는 경우도 있음)
                    "binding_type": "$texture_binding_type",
                    // 목록 이름
                    "binding_collection_name": "$texture_binding_collection",
                    // 가져올 값 이름
                    "binding_name": "$button_texture_zip"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (('\"' + #zip_folder - 'development_' + '\"') = #zip_folder)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#is_development_icon_zip"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#is_development_icon_path or #is_development_icon_zip)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "padding_version_label": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 4, "100%" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "driven@rainbowpieui_settings_common.driven": {
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "center",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "center",
                            // 가로/세로 크기
                            "size": [ 1, 8 ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "dev_tag_label@rainbowpie_ui_common.text_label": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 가로/세로 크기
                      "size": [ "default", "default" ],
                      // 보여줄 글자
                      "text": "DEV",
                      // ?? (R,G,B,A)
                      "color": [ 1.0, 1.0, 0.333 ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "resource_toggle": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%cm" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "content_toggle@common.toggle": {
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],

          // ?? ??
          "checked_control": "default",
          // ?? ??
          "unchecked_control": "unchecked",
          // ?? ??
          "checked_hover_control": "hover",
          // ?? ??
          "unchecked_hover_control": "unchecked_hover",
          // ?? ??
          "checked_locked_control": "default",
          // ?? ??
          "unchecked_locked_control": "unchecked",
          // ?? ??
          "checked_locked_hover_control": "hover",
          // ?? ??
          "unchecked_locked_hover_control": "unchecked_hover",

          // 오버라이드 가능한 변수
          "$toggle_grid_collection_name": "($panel_prefix + _panel)",
          // 오버라이드 가능한 변수
          "$toggle_name": "($panel_prefix + _item_dropdown)",
          // 오버라이드 가능한 변수
          "$toggle_binding_type": "collection",
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "($panel_prefix + _toggle_check)",

          // 오버라이드 가능한 변수
          "$focus_override_right": "FOCUS_OVERRIDE_STOP",

          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "('#' + $panel_prefix + _isSelected)",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#toggle_state",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "($panel_prefix + _panel)"
            }
          ],

          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "default@$item_template": {
                // 오버라이드 가능한 변수
                "$button_state": "default",
                // 오버라이드 가능한 변수
                "$checked_state": true
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hover@$item_template": {
                // 오버라이드 가능한 변수
                "$button_state": "hover",
                // 오버라이드 가능한 변수
                "$checked_state": true,
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "unchecked@$item_template": {
                // 오버라이드 가능한 변수
                "$button_state": "default",
                // 오버라이드 가능한 변수
                "$checked_state": false
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "unchecked_hover@$item_template": {
                // 오버라이드 가능한 변수
                "$button_state": "hover",
                // 오버라이드 가능한 변수
                "$checked_state": false,
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "item_button_panel": {
          // 마우스/커서 따라다니는 패널
          "type": "input_panel",
          // ?? ??
          "modal": true,
          // ?? ??
          "inline_modal": true,
          // 포커스 가능 여부
          "focus_enabled": false,
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 가로/세로 크기
          "size": [ 0, 0 ],
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 가져올 값 이름
              "binding_name": "('#' + $panel_prefix + _optionsVisible)",
              // 목록 이름
              "binding_collection_name": "($panel_prefix + _panel)"
            },
            {
              // 가져올 값 이름
              "binding_name": "#is_using_gamepad",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#modal",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            }
          ],
          // 입력 키/버튼과 동작 연결
          "button_mappings": [
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_cancel",
              // 어떤 동작을 실행할지
              "to_button_id": "button.deselect_resource",
              // 입력 시점(pressed 등)
              "mapping_type": "global"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_select",
              // 어떤 동작을 실행할지
              "to_button_id": "button.deselect_resource",
              // 입력 시점(pressed 등)
              "mapping_type": "global",
              // ?? ??
              "consume_event": false
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_left",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_left",
              // 입력 시점(pressed 등)
              "mapping_type": "global",
              // ?? ??
              "scope": "view"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_right",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_right",
              // 입력 시점(pressed 등)
              "mapping_type": "global",
              // ?? ??
              "scope": "view"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "button_panel_background": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100%c + 4px", "100%c + 4px" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // ?? (R,G,B,A)
                "color": [ 0.12941176470588237, 0.12941176470588237, 0.12941176470588237 ],
                // ???
                "alpha": 0.7,
                // 겹치는 순서(숫자 클수록 위)
                "layer": 20,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "button_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 가로/세로 크기
                      "size": [ "100%c", 24 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "generate_texture_list_button@storage_management.sub_item_tray_button": {
                            // 완전히 제거(공간도 없음)
                            "ignored": "(not ($panel_prefix = resource) or true)",
                            // 가로/세로 크기
                            "size": [ "100%y", "100%" ],

                            // 오버라이드 가능한 변수
                            "$glyph_size": [ 11, 17 ],
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "button.generateTextureList",
                            // 오버라이드 가능한 변수
                            "$button_texture": "textures/ui/update",

                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 인덱스/현재 항목 정보 제공
                                "binding_type": "collection_details"
                              },
                              {
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection",
                                // 목록 이름
                                "binding_collection_name": "($panel_prefix + _panel)",
                                // 가져올 값 이름
                                "binding_name": "('#sub_' + $panel_prefix + _generate_texture_list_button_visible)",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "delete_button@storage_management.sub_item_tray_button": {
                            // 가로/세로 크기
                            "size": [ "100%y", "100%" ],
                            // 오버라이드 가능한 변수
                            "$glyph_size": [ 15, 17 ],
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "button.deleteResources",
                            // 오버라이드 가능한 변수
                            "$button_texture": "textures/ui/trash",
                            // 오버라이드 가능한 변수
                            "$button_tts_header": "storageManager.multiselectDelete",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 인덱스/현재 항목 정보 제공
                                "binding_type": "collection_details"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "share_button@storage_management.sub_item_tray_button": {
                            // 완전히 제거(공간도 없음)
                            "ignored": true,
                            // 가로/세로 크기
                            "size": [ "100%y", "100%" ],
                            // 오버라이드 가능한 변수
                            "$glyph_size": [ 16, 15 ],
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "button.shareResources",
                            // 오버라이드 가능한 변수
                            "$button_texture": "textures/ui/windowsshare",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 인덱스/현재 항목 정보 제공
                                "binding_type": "collection_details"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "dependency_button@storage_management.sub_item_tray_button": {
                            // 완전히 제거(공간도 없음)
                            "ignored": "(($panel_prefix = world) or ($panel_prefix = world_template))",
                            // 가로/세로 크기
                            "size": [ "100%y", "100%" ],
                            // 오버라이드 가능한 변수
                            "$glyph_size": [ 13, 20 ],
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "button.warningDependency",
                            // 오버라이드 가능한 변수
                            "$button_texture": "#pack_info_texture",
                            // 오버라이드 가능한 변수
                            "$button_texture_binding_type": "collection",
                            // 오버라이드 가능한 변수
                            "$button_texture_collection_name": "($panel_prefix + _panel)",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 목록 인덱스/현재 항목 정보 제공
                                "binding_type": "collection_details"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "navigation_tab_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 가로/세로 크기
    "size": [ "100%", 20 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "selected_packs_navigation_tab@rainbowpieui_storage_management.top_tab": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ],
          // 오버라이드 가능한 변수
          "$tab_view_binding_name": "storage_management_navigation_tab_toggle",
          // 오버라이드 가능한 변수
          "$tab_text": "rainbowpie.ui.storage_management.tab.management",
          // 오버라이드 가능한 변수
          "$toggle_group_forced_index": 0
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "available_packs_navigation_tab@rainbowpieui_storage_management.top_tab": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ],
          // 오버라이드 가능한 변수
          "$tab_view_binding_name": "storage_settings_navigation_tab_toggle",
          // 오버라이드 가능한 변수
          "$tab_text": "rainbowpie.ui.storage_management.tab.settings",
          // 오버라이드 가능한 변수
          "$toggle_group_forced_index": 1
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "top_tab@common_tabs.tab_top": {
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "storage_management_rainbowpieui_navigation_tab",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 0,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 오버라이드 가능한 변수
    "$tab_content": "rainbowpieui_storage_management.top_tab_content"
  },

  // ???/?? ??
  "top_tab_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "tab_label@rainbowpie_ui_common.text_label_notheme": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 가로/세로 크기
          "size": [ "default", "default" ],
          // ?? ??
          "text_alignment": "center",
          // 보여줄 글자
          "text": "$tab_text",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  }
}

structure_editor_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: structure_editor_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_structure_editor",

  // ???/?? ??
  "structure_editor_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_sliderbar_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_editbox_enabled": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "header@rainbowpie_ui_common.screen_header": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_ingame_anim1": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_title": "structure_block.title"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_ingame_anim1": true,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content_background@rainbowpie_ui_common.global_background": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 가로/세로 크기
                "size": [ "168px", "100% - 20px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 20 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // ???
                "alpha": "$rainbowpie_localui_this_alpha",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_this_alpha": "$rainbowpie_ui_theme_global_background_alpha",
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$is_pregame",
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_this_alpha": 0.5
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "left_side@structure_editor.scrolling_panel": {
                // 가로/세로 크기
                "size": [ "168px", "100% - 20px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 20 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10

              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "right_side@structure_editor.right_divider_content": {
                // 가로/세로 크기
                "size": [ "100% - 170px", "100% - 31px" ],
                // 기준점에서 이동하는 거리
                "offset": [ "170px", 23 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left"

              }
            }
          ]
        }
      }
    ]
  }
}

toast_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: toast_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_toast_screen",

  // ???/?? ??
  "popup_anim": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_cubic",
    // 시작 값
    "from": "$popup_distance_from",
    // 끝 값
    "to": "$popup_distance_to",
    // 걸리는 시간(초)
    "duration": "$transition_time",
    // 오버라이드 가능한 변수
    "$anim_event_name|default": "toast_animation_finished",
    // ?? ??
    "end_event": "$anim_event_name"
  }
}

trade_2_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: trade_2_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_trade2",

  // ???/?? ??
  "trade_screen_more_info": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 12px", "100% - 28px" ],
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 겹치는 순서(숫자 클수록 위)
    "layer": 12,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_label@rainbowpie_ui_common.text_label": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 보여줄 글자
          "text": "More Info",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "result_item_label@rainbowpie_ui_common.text_label": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 보여줄 글자
          "text": "Result Item Info",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 10 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "item_renderer@common.item_renderer": {
          // 가로/세로 크기
          "size": [ 12, 12 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 20 ],
          // 오버라이드 가능한 변수
          "$item_collection_name": "trade2_result_item",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "result_item_rc_label@rainbowpie_ui_common.text_label": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 보여줄 글자
          "text": "Aux Rc: ",
          // 기준점에서 이동하는 거리
          "offset": [ 14, 20 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "item_renderer_rc@rainbowpie_ui_common.item_renderer": {
          // 가로/세로 크기
          "size": [ 12, 12 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 기준점에서 이동하는 거리
          "offset": [ 44, 20 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#item_id_aux",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#item_id_aux_int",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "trade2_result_item"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#item_id_aux_int / 65565)",
              // 결과가 들어갈 속성
              "target_property_name": "#item_id"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#item_id * 65565)",
              // 결과가 들어갈 속성
              "target_property_name": "#item_id_aux"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "result_item_info_label@rainbowpie_ui_common.text_label": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 보여줄 글자
          "text": "#text",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 32 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#hover_text",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "trade2_result_item"
            },
            {
              // 가져올 값 이름
              "binding_name": "#item_id_aux",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "trade2_result_item"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#item_id_aux / 65565)",
              // 결과가 들어갈 속성
              "target_property_name": "#item_id"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#item_id * 65565)",
              // 결과가 들어갈 속성
              "target_property_name": "#item_id_aux_rc"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#hover_text + '\nitem_id_aux: ' + #item_id_aux + '\nitem_id: ' + #item_id + '\nitem_id_aux(rc): ' + #item_id_aux_rc)",
              // 결과가 들어갈 속성
              "target_property_name": "#text"
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "more_navigation_tab_toggle",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "header_controls": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // 보이기/숨기기(공간 유지)
    "visible": "$rainbowpie_ui_flag_inventory_debug",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "more_navigation_tab@rainbowpieui_trade2.top_tab": {
          // 가로/세로 크기
          "size": [ "200%y", "100%" ],
          // 오버라이드 가능한 변수
          "$tab_view_binding_name": "more_navigation_tab_toggle",
          // 오버라이드 가능한 변수
          "$tab_text": "MORE INFO",
          // 오버라이드 가능한 변수
          "$toggle_group_forced_index": 11
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "top_tab@common_tabs.tab_top": {
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": 0.0,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.2,

    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$toggle_tts_enabled_binding_type": "global",
    // 오버라이드 가능한 변수
    "$radio_toggle_group": false,
    // 오버라이드 가능한 변수
    "$toggle_name": "rainbowpieui_navigation_tab",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": 10,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 오버라이드 가능한 변수
    "$toggle_tts_type_priority": 1001,
    // 오버라이드 가능한 변수
    "$toggle_tts_toggle_on_text": "",
    // 오버라이드 가능한 변수
    "$toggle_tts_toggle_off_text": "",
    // 오버라이드 가능한 변수
    "$toggle_tts_index_priority": 1002,
    // 오버라이드 가능한 변수
    "$tab_content": "rainbowpieui_trade2.top_tab_content"
  },

  // ???/?? ??
  "top_tab_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "tab_label@rainbowpie_ui_common.text_label_notheme": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 가로/세로 크기
          "size": [ "default", "default" ],
          // ?? ??
          "text_alignment": "center",
          // 보여줄 글자
          "text": "$tab_text",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // ???/?? ??
  "tier_title": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 16 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_background@rainbowpie_ui_common.title_background": {
          // 가로/세로 크기
          "size": [ "100%", 14 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "text_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100% - 4px", 10 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title_label@rainbowpie_ui_common.title_label": {
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 보여줄 글자
                      "text": "#tier_name",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#tier_name",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "$collection_name"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#is_tier_unlocked",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$collection_name",
              // ?? ???
              "binding_condition": "always"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_background_locked@rainbowpie_ui_common.title_background": {
          // ?? (R,G,B,A)
          "color": [ 0.4, 0.4, 0.4 ],
          // 가로/세로 크기
          "size": [ "100%", 14 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "text_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100% - 4px", 10 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title_label@rainbowpie_ui_common.title_label": {
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 보여줄 글자
                      "text": "#tier_name",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#tier_name",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "$collection_name"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "(not #is_tier_unlocked)",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$collection_name",
              // ?? ???
              "binding_condition": "always"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "trade_toggle_unchecked": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "toggle_checked_normal@rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details"
            },
            {
              // 가져올 값 이름
              "binding_name": "#trade_possible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "toggle_checked_red@rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_button_default_color": [ 0.85098, 0.301961, 0.301961 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details"
            },
            {
              // 가져올 값 이름
              "binding_name": "(not #trade_possible)",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "trade_toggle_checked": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "toggle_checked_normal@rainbowpieui_settings_common.rainbowpie_ui_toggle_checked": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details"
            },
            {
              // 가져올 값 이름
              "binding_name": "#trade_possible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "toggle_checked_red@rainbowpieui_settings_common.rainbowpie_ui_toggle_checked": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_button_default_color": [ 0.85098, 0.301961, 0.301961 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details"
            },
            {
              // 가져올 값 이름
              "binding_name": "(not #trade_possible)",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  }
}

world_section_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: world_section_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_world_section",

  // 다른 템플릿을 가져와서 확장(상속)
  "level_texture_pack_header@rainbowpieui_resource_packs.resource_packs_header": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_type": "texture",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_control": "level_rp_search_text_box_display_text",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_placeholder": "rainbowpie.ui.resource_packs.search.placeholder.resource",
    // 오버라이드 가능한 변수
    "$selected_pack_items": "#selected_pack_items_level",
    // 오버라이드 가능한 변수
    "$available_pack_items": "#available_pack_items_level",
    // 오버라이드 가능한 변수
    "$selected_label_text": "resourcePack.selected.title.packs",
    // 오버라이드 가능한 변수
    "$available_label_text": "resourcePack.available.title.packs",
    // 오버라이드 가능한 변수
    "$show_checkbox": true,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "level_texture_pack_button_toggle",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "addon_header@rainbowpieui_resource_packs.resource_packs_header": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_type": "addon",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_control": "level_bp_search_text_box_display_text",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_placeholder": "rainbowpie.ui.resource_packs.search.placeholder.behavior",
    // 오버라이드 가능한 변수
    "$selected_pack_items": "#selected_pack_items_addon",
    // 오버라이드 가능한 변수
    "$available_pack_items": "#available_pack_items_addon",
    // 오버라이드 가능한 변수
    "$selected_label_text": "resourcePack.selected.title.packs",
    // 오버라이드 가능한 변수
    "$available_label_text": "resourcePack.available.title.packs",
    // 오버라이드 가능한 변수
    "$show_checkbox": false,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "addon_button_toggle",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  }
}

world_templates_screen_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: world_templates_screen_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_world_templates",

  // ???/?? ??
  "world_templates_picker_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "header@rainbowpie_ui_common.screen_header": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_title": "$screen_title"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "template_scroll_content@world_templates.template_scroll_content": {
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_scrollbar_enabled": true,
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 가로/세로 크기
                "size": [ "100%", "100% - 20px" ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "list_title": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 15 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "list_title@rainbowpie_ui_common.title_background": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_list_title_text|default": "TITLE TEXT",
          // 가로/세로 크기
          "size": [ "100%", 14 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "text_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100% - 4px", 10 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title@rainbowpie_ui_common.title_label": {
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 보여줄 글자
                      "text": "$rainbowpie_localui_list_title_text",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}

xbl_friend_finder_controls.json RainbowPie UI · ui extras

필요한 부분만 참고해서 가져가세요.

// 예제: xbl_friend_finder_controls.json
// 분류: RainbowPie UI / ui extras
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "rainbowpieui_xbl_friend_finder",

  // ???/?? ??
  "xbl_friend_finder_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "screen_content@rainbowpie_ui_common.screen_content": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screen_content": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "dialog@rainbowpie_ui_dialog.dialog_panel": {
                // 가로/세로 크기
                "size": [ 250, 110 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, "-20%" ],
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialogheader_title": "xbox.profile.addFriend",
                // 오버라이드 가능한 변수
                "$rainbowpie_localui_dialog_content": "rainbowpieui_xbl_friend_finder.dialog_content"
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "dialog_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "main_panel@xbl_friend_finder.main_panel": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle"
        }
      }
    ]
  }
}

기본 UI 모음 1 16 개

기본

_global_variables.json 기본 UI 모음 1 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: _global_variables.json
// 분류: 기본 UI 모음 1 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	//////// Transition times ////////
	"$transition_time_push_size": 0.2, //Shorter screen animation times - Alien
	// 오버라이드 가능한 변수
	"$transition_time_pop_size": 0.2, //Shorter screen animation times - Alien
	// 오버라이드 가능한 변수
	"$transition_time_push": 0.2, //Shorter screen animation times - Alien
	// 오버라이드 가능한 변수
	"$transition_time_pop": 0.2, //Shorter screen animation times - Alien
	// 오버라이드 가능한 변수
	"$container_transition_time_push": 0.2, //Shorter screen animation times - Alien
	// 오버라이드 가능한 변수
	"$container_transition_time_pop": 0.2, //Shorter screen animation times - Alien
	// 오버라이드 가능한 변수
	"$loading_bar_transition": 0.2 //Shorter screen animation times - Alien
}

hud_screen.json 기본 UI 모음 1 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: hud_screen.json
// 분류: 기본 UI 모음 1 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "hud",
  //---------------------------------------------------------------------------
  // Animated Progress Bar System
  //---------------------------------------------------------------------------
  "hud_title_text/title_frame": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "title",
        // 계산식/참조 값
        "source_property_name": "((#text - 'bar:') = #text)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "increase_anim": {
    // 크기 변화
    "anim_type": "size",
    // 시작 값
    "from": [0, "100%"],
    // 끝 값
    "to": ["100%", "100%"],
    // 걸리는 시간(초)
    "duration": "$duration",
    // 움직임 곡선
    "easing": "$increase_easing"
  },

  // ???/?? ??
  "decrease_anim": {
    // 크기 변화
    "anim_type": "size",
    // 시작 값
    "from": ["100%", "100%"],
    // 끝 값
    "to": [0, "100%"],
    // 걸리는 시간(초)
    "duration": "$duration",
    // 움직임 곡선
    "easing": "$decrease_easing"
  },

  // ???/?? ??
  "trail_anim": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": "$trail_delay",
    // 다음 애니메이션으로 연결
    "next": "@hud.decrease_anim"
  },

  // ???/?? ??
  "animated_bar_image": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", "100%"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "bar_image": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": "$size_anim",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ???
          "alpha": "$bar_alpha",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 사용할 이미지 경로
          "texture": "$bar_texture"
        }
      },
      {
        // ???/?? ??
        "trail_image": {
          // 완전히 제거(공간도 없음)
          "ignored": "$ignore_trail",
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 0,
          // 가로/세로 크기
          "size": "@hud.trail_anim",
          // ???
          "alpha": "$trail_alpha",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 사용할 이미지 경로
          "texture": "$trail_texture"
        }
      }
    ]
  },

  // ???/?? ??
  "animated_progress_bar": {
    // animations
    "$duration": 0.25,
    // 오버라이드 가능한 변수
    "$trail_delay|default": 0.25,
    // 오버라이드 가능한 변수
    "$increase_easing|default": "in_out_sine",
    // 오버라이드 가능한 변수
    "$decrease_easing|default": "in_out_circ",

    // progress bar
    "$background_size|default": [80, 6],
    // 오버라이드 가능한 변수
    "$background_texture|default": "textures/ui/bar_bg",

    // 오버라이드 가능한 변수
    "$background_alpha|default": 1,
    // 오버라이드 가능한 변수
    "$bar_texture|default": "textures/ui/bar",
    // 오버라이드 가능한 변수
    "$bar_size|default": ["100% - 2px", "100% - 2px"], // 100% is the width / height of background texture ($background_size)
    // 오버라이드 가능한 변수
    "$bar_offset|default": [1, 1],
    // 오버라이드 가능한 변수
    "$bar_alpha|default": 1,

    // 오버라이드 가능한 변수
    "$ignore_trail|default": false,
    // 오버라이드 가능한 변수
    "$trail_texture|default": "textures/ui/White",
    // 오버라이드 가능한 변수
    "$trail_alpha|default": 0.6,

    // DO NOT FORGET to define these
    "$multiplier|default": 0.05, // (1 / max_value) ; max_value is the maximum value of progress bar, here 20
    // 오버라이드 가능한 변수
    "$data_source|default": "<preserved title or subtitle panel>",
    // 오버라이드 가능한 변수
    "$max_value_binding|default": "", // keep this empty if you don't want the max value to be dynamic
    // 오버라이드 가능한 변수
    "$progress_binding|default": "#value", // name of the binding that will provide the value for this progress bar

    // progress bar text
    "$ignore_text|default": false,
    // 오버라이드 가능한 변수
    "$text_color|default": [1, 1, 1],
    // 오버라이드 가능한 변수
    "$text_font_type|default": "default",
    // 오버라이드 가능한 변수
    "$text_font_scale_factor|default": 1,
    // 오버라이드 가능한 변수
    "$text_shadow|default": true,
    // 오버라이드 가능한 변수
    "$text_offset|default": [0, -12],
    // 오버라이드 가능한 변수
    "$text_size|default": ["default", "default"],
    // 오버라이드 가능한 변수
    "$text_format|default": "('§z' + $progress_binding + '/20')", // this goes in source_property_name

    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": "$background_size",
    // 오버라이드 가능한 변수
    "$one": 1.0,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "progress_bar_text": {
          // 완전히 제거(공간도 없음)
          "ignored": "$ignore_text",
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "#text",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // ?? (R,G,B,A)
          "color": "$text_color",
          // ??
          "font_type": "$text_font_type",
          // ?? ?? ??
          "font_scale_factor": "$text_font_scale_factor",
          // ?? ??
          "shadow": "$text_shadow",
          // 기준점에서 이동하는 거리
          "offset": "$text_offset",
          // 가로/세로 크기
          "size": "$text_size",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "$data_source",
              // 계산식/참조 값
              "source_property_name": "$text_format",
              // 결과가 들어갈 속성
              "target_property_name": "#text"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "bar_parent_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 기준점에서 이동하는 거리
          "offset": "$bar_offset",
          // 가로/세로 크기
          "size": "$bar_size",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "animated_bar_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 가로/세로 크기
                "size": ["100%", "100%"],
                // ??/?? ?
                "use_anchored_offset": true,
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#prev_value": 0,
                  // ???/??? ?
                  "#multiplier": "$multiplier"
                },
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 완전히 제거(공간도 없음)
                    "ignored": "($max_value_binding = '')",
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "$data_source",
                    // 계산식/참조 값
                    "source_property_name": "$max_value_binding",
                    // 결과가 들어갈 속성
                    "target_property_name": "#max_bind"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "$data_source",
                    // 계산식/참조 값
                    "source_property_name": "#visible",
                    // 결과가 들어갈 속성
                    "target_property_name": "#key"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "$data_source",
                    // 계산식/참조 값
                    "source_property_name": "$progress_binding",
                    // 결과가 들어갈 속성
                    "target_property_name": "#changed_value"
                  },
                  {
                    // 완전히 제거(공간도 없음)
                    "ignored": "($max_value_binding = '')",
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "($one / #max_bind)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#multiplier"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#prev_value * (1 - #key) + #changed_value * #key)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#prev_value"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#changed_value + (#prev_value - #changed_value) * ((#prev_value - #changed_value) < 0))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#min" // min(#prev_value, #changed_value)
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#min * #multiplier)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#anchored_offset_value_x"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "((#changed_value + #prev_value - 2 * #min) * #multiplier)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#size_binding_x"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "anim_increase": {
                      // 데이터 목록을 반복 배치
                      "type": "collection_panel",
                      // 가로/세로 크기
                      "size": ["100%", "100%"],
                      // 오버라이드 가능한 변수
                      "$size_anim": "@hud.increase_anim",
                      // 오버라이드 가능한 변수
                      "$ignore_trail": true,
                      // 목록 아이템을 자동으로 생성
                      "factory": {
                        // ?? ??
                        "name": "anim_increase",
                        // ??? ???
                        "control_name": "hud.animated_bar_image"
                      },
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "animated_bar_panel",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "((#changed_value > #prev_value) * 1)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#collection_length"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "anim_decrease": {
                      // 데이터 목록을 반복 배치
                      "type": "collection_panel",
                      // 가로/세로 크기
                      "size": ["100%", "100%"],
                      // 오버라이드 가능한 변수
                      "$size_anim": "@hud.decrease_anim",
                      // 목록 아이템을 자동으로 생성
                      "factory": {
                        // ?? ??
                        "name": "anim_decrease",
                        // ??? ???
                        "control_name": "hud.animated_bar_image"
                      },
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "animated_bar_panel",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "((#prev_value > #changed_value) * 1)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#collection_length"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "bar_panel": {
                // 이미지 표시
                "type": "image",
                // ???
                "alpha": "$bar_alpha",
                // 사용할 이미지 경로
                "texture": "$bar_texture",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 가로/세로 크기
                "size": ["100%", "100%"],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "animated_bar_panel",
                    // ?? ??
                    "resolve_sibling_scope": true,
                    // 계산식/참조 값
                    "source_property_name": "(#min * #multiplier)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#size_binding_x"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "bar_bg": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": "$background_size",
          // ???
          "alpha": "$background_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 0,
          // 사용할 이미지 경로
          "texture": "$background_texture"
        }
      }
    ]
  },

  // ???/?? ??
  "preserved_title": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [0, 0],
    // 오버라이드 가능한 변수
    "$update_string": "bar:",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#hud_title_text_string"
      },
      {
        // 가져올 값 이름
        "binding_name": "#hud_title_text_string",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#preserved_text",
        // ?? ???
        "binding_condition": "visibility_changed"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not (#hud_title_text_string = #preserved_text) and not ((#hud_title_text_string - $update_string) = #hud_title_text_string))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#preserved_text - $update_string) + 0)",
        // 결과가 들어갈 속성
        "target_property_name": "#progress"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#preserved_text - ($update_string + #progress + ',')) + 0)",
        // 결과가 들어갈 속성
        "target_property_name": "#max_value"
      }
    ]
  },

  //---------------------------------------------------------------------------
  // Hud Screen
  //---------------------------------------------------------------------------
  "hud_player_renderer": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [
      0, //Setting the size to 0 will mean the paper doll doesn't exist - Alien
      0
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "hud_player": {
          // 특수 렌더러(그라디언트/플레이어 등)
          "type": "custom",
          // 커스텀 렌더러 종류
          "renderer": "hud_player_renderer",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 애니메이션 목록
          "anims": [
            "@common.screen_exit_size_animation_push",
            "@common.screen_exit_size_animation_pop",
            "@common.screen_entrance_size_animation_push",
            "@common.screen_entrance_size_animation_pop"
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#paper_doll_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },
  // Displays player's position in the form "Position: 0, 0, 0", as well as "Agent Pos: 0, 0, 0" if an owned agent is present
  "player_position": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [
      "100%c + 6px",
      "100%c + 2px"
    ],
    // 사용할 이미지 경로
    "texture": "textures/ui/Black",
    "alpha": 0.0, //Remove background - Alien
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "player_position_text": {
          // 글자 표시
          "type": "label",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ?? ??
          "enable_profanity_filter": false,
          // ?? (R,G,B,A)
          "color": "$chat_text_color",
          // 보여줄 글자
          "text": "#text",
          // ?? ??
          "shadow": true,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#player_position_text",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#text",
              // ?? ???
              "binding_condition": "always_when_visible",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#paper_doll_visible", //Setting position binding to the paper doll binding, meaning it will only be shown when the paper doll is enabled. - Alien
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // ?? ???
        "binding_condition": "always",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      }
    ]
  },
  // Displays number of played in-game days
  "number_of_days_played": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [
      "100%c + 6px",
      "100%c + 2px"
    ],
    // 사용할 이미지 경로
    "texture": "textures/ui/Black",
    "alpha": 0.0, //Remove background - Alien
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "number_of_days_played_text": {
          // 글자 표시
          "type": "label",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ?? ??
          "enable_profanity_filter": false,
          // ?? (R,G,B,A)
          "color": "$chat_text_color",
          // 보여줄 글자
          "text": "#text",
          // ?? ??
          "shadow": true,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#number_of_days_played_text",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#text",
              // ?? ???
              "binding_condition": "always_when_visible",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#paper_doll_visible", //Setting position binding to the paper doll binding, meaning it will only be shown when the paper doll is enabled. - Alien
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // ?? ???
        "binding_condition": "always",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      }
    ]
  },
  // ???/?? ??
  "anim_chat_bg_alpha": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_quart",
    // ?? ??
    "destroy_at_end": "chat_grid_item",
    // 걸리는 시간(초)
    "duration": 1,
    // 시작 값
    "from": 0.0, //Removes background from chat fade out animation - Alien
    // 끝 값
    "to": 0
  },
  // ???/?? ??
  "chat_grid_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [
      "100%-2px",
      "100%c"
    ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "(not #on_new_death_screen)",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "chat_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/Black",
          "alpha": 0.0, //Remove chat background - Alien
          // 가로/세로 크기
          "size": [
            "100%",
            "100%c"
          ],
          // 애니메이션 목록
          "anims": [
            "@hud.anim_chat_bg_wait"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "chat_text@chat_label": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 기준점에서 이동하는 거리
                "offset": [
                  2,
                  0
                ]
              }
            }
          ]
        }
      }
    ]
  },
  // ???/?? ??
  "anim_item_name_text_alpha_stay": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 1.5, //Time for item name to wait on screen - Alien
    // 다음 애니메이션으로 연결
    "next": "@hud.anim_item_name_text_alpha_out"
  },
  // ???/?? ??
  "anim_item_name_text_alpha_out": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_expo",
    // ?? ??
    "destroy_at_end": "$destroy_id",
    // 걸리는 시간(초)
    "duration": 1, //Time for fade out animation - Alien
    // 시작 값
    "from": 1.0,
    // 끝 값
    "to": 0
  },
  //Did not need to edit background animation due to background being removed.
  //Did not edit in animation because it made the fade in weird when switching between items
  "item_name_text_root": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [
      "100%cm",
      "100%cm"
    ],
    // 오버라이드 가능한 변수
    "$show_interact_padding|default": false,
    // 오버라이드 가능한 변수
    "$show_survival_padding|default": false,
    // 오버라이드 가능한 변수
    "$show_text_background|default": false,
    // 오버라이드 가능한 변수
    "$text_color|default": "$tool_tip_text",
    // 오버라이드 가능한 변수
    "$text_binding|default": "#item_text",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 오버라이드 가능한 변수
    "$wait_duration|default": 1,
    // 오버라이드 가능한 변수
    "$destroy_id|default": "item_name_text",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "item_text_aligner": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [
            "100%cm",
            "100%c"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "item_text_control": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [
                  "100%cm",
                  "100%cm"
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  //{
                  //  "item_text_background": {
                  //    "ignored": "(not $show_text_background)",
                  //    "type": "image",
                  //    "size": [
                  //      "100%sm + 12px",
                  //      "100%sm + 5px"
                  //    ],
                  //    "texture": "textures/ui/hud_tip_text_background",
                  //    "alpha": "@hud.anim_item_name_background_alpha_in"
                  //  }
                  //},
                  {
                    // ???/?? ??
                    "item_text_label": {
                      // 글자 표시
                      "type": "label",
                      // ???/?? ??
                      "max_size": [
                        200,
                        "default"
                      ],
                      // ?? ??
                      "text_alignment": "center",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 31,
                      // ?? (R,G,B,A)
                      "color": "$text_color",
                      // 보여줄 글자
                      "text": "#text",
                      "shadow": true, //Add shadow so its still readable - Alien
                      // ???
                      "alpha": "@hud.anim_item_name_text_alpha_in",
                      // Disable profanity filter for this control so that
                      // we can enable it on the fly only for items with custom names
                      "enable_profanity_filter": false,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "$text_binding",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#text"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "interact_padding@common.empty_panel": {
                // 보이기/숨기기(공간 유지)
                "visible": "$show_interact_padding",
                // To not overlap with the interact button
                // the text needs to move up by 18
                "size": [
                  "100%sm",
                  18
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#interact_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // ?? ???
                    "binding_condition": "always"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "survival_buffer@common.empty_panel": {
                // 보이기/숨기기(공간 유지)
                "visible": "$show_survival_padding",
                // Survival HUD has elements above the hot bar
                // meaning the text needs to move up
                "size": [
                  "100%sm",
                  17
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#show_survival_ui",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },
  // ???/?? ??
  "root_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$xp_control_offset|default": [
      0,
      -13
    ],
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$education_edition",
        // 오버라이드 가능한 변수
        "$left_helpers": "hud.left_helpers_edu"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "(not $education_edition)",
        // 오버라이드 가능한 변수
        "$left_helpers": "hud.left_helpers"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "layout_customization_reset": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [
            "200%",
            "200%"
          ],
          // 사용할 이미지 경로
          "texture": "textures/ui/Black.png",
          // ?? ??
          "fill": true,
          // ???
          "alpha": 0.5,
          // 겹치는 순서(숫자 클수록 위)
          "layer": 50,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "layout_customization_reset_modal@common_dialogs.main_panel_two_buttons": {
                // 가로/세로 크기
                "size": [
                  210,
                  160
                ],
                // 오버라이드 가능한 변수
                "$show_close_button": false,
                // 오버라이드 가능한 변수
                "$child_control": "library_modal.modal_text_content",
                // 오버라이드 가능한 변수
                "$top_button_panel": "hud.wysiwyg_reset_modal_ok",
                // 오버라이드 가능한 변수
                "$bottom_button_panel": "hud.wysiwyg_reset_modal_cancel",
                // 오버라이드 가능한 변수
                "$modal_text": "hudScreen.controlCustomization.resetModalText"
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#reset_modal_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "layout_customization_close_without_saving": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [
            "200%",
            "200%"
          ],
          // 사용할 이미지 경로
          "texture": "textures/ui/Black.png",
          // ?? ??
          "fill": true,
          // ???
          "alpha": 0.5,
          // 겹치는 순서(숫자 클수록 위)
          "layer": 50,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "layout_customization_close_without_saving_modal@common_dialogs.main_panel_two_buttons": {
                // 가로/세로 크기
                "size": [
                  210,
                  160
                ],
                // 오버라이드 가능한 변수
                "$show_close_button": false,
                // 오버라이드 가능한 변수
                "$child_control": "library_modal.modal_text_content",
                // 오버라이드 가능한 변수
                "$top_button_panel": "hud.wysiwyg_close_without_saving_modal_ok",
                // 오버라이드 가능한 변수
                "$bottom_button_panel": "hud.wysiwyg_close_without_saving_modal_cancel",
                // 오버라이드 가능한 변수
                "$modal_text": "hudScreen.controlCustomization.closeWithoutSavingModalText"
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#close_without_saving_modal_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "layout_customization_main_panel@hud.layout_customization_main_panel": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "layout_customization_sub_panel@hud.layout_customization_sub_panel": {}
      },
      {
        // ???/?? ??
        "layout_customization_hint_drag_frame": {
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 40,
          // ??/?? ?
          "use_anchored_offset": true,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#anchored_offset_value_y": 0.0
          },
          // 사용할 이미지 경로
          "texture": "textures/ui/Black",
          // 가로/세로 크기
          "size": [
            "100%c+5px",
            "100%c+2px"
          ],
          // ???
          "alpha": 0.5,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "layout_customization_hint_drag": {
                // 글자 표시
                "type": "label",
                // 보여줄 글자
                "text": "hudScreen.controlCustomization.hintDrag",
                // ?? (R,G,B,A)
                "color": "$f_color_format"
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#hint_drag_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            },
            {
              // 가져올 값 이름
              "binding_name": "#layout_customization_hint_offset_y",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#anchored_offset_value_y",
              // ?? ???
              "binding_condition": "visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "layout_customization_hint_deselect_frame": {
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 40,
          // ??/?? ?
          "use_anchored_offset": true,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#anchored_offset_value_y": 0.0
          },
          // 사용할 이미지 경로
          "texture": "textures/ui/Black",
          // 가로/세로 크기
          "size": [
            "100%c+5px",
            "100%c+2px"
          ],
          // ???
          "alpha": 0.5,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "layout_customization_hint_deselect": {
                // 글자 표시
                "type": "label",
                // 보여줄 글자
                "text": "hudScreen.controlCustomization.hintDeselect",
                // ?? (R,G,B,A)
                "color": "$f_color_format"
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#hint_deselect_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            },
            {
              // 가져올 값 이름
              "binding_name": "#layout_customization_hint_offset_y",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#anchored_offset_value_y",
              // ?? ???
              "binding_condition": "visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "layout_customization_hint_saved": {
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 40,
          // ??/?? ?
          "use_anchored_offset": true,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#anchored_offset_value_y": 0.0
          },
          // 사용할 이미지 경로
          "texture": "textures/ui/Black",
          // 가로/세로 크기
          "size": [
            "100%c+5px",
            "100%c+2px"
          ],
          // ???
          "alpha": 0.5,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "layout_customization_hint_saved": {
                // 글자 표시
                "type": "label",
                // 보여줄 글자
                "text": "hudScreen.controlCustomization.hintSaved",
                // ?? (R,G,B,A)
                "color": "$f_color_format"
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#hint_saved_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            },
            {
              // 가져올 값 이름
              "binding_name": "#layout_customization_hint_offset_y",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#anchored_offset_value_y",
              // ?? ???
              "binding_condition": "visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "left_helpers@$left_helpers": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "right_helpers@hud.right_helpers": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "emote_expediate_helpers@hud.emote_expediate_helpers": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "centered_gui_elements@centered_gui_elements": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "centered_gui_elements_at_bottom_middle@centered_gui_elements_at_bottom_middle": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "centered_gui_elements_at_bottom_middle_touch@centered_gui_elements_at_bottom_middle_touch": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "not_centered_gui_elements@not_centered_gui_elements": {}
      },
      {
        // ???/?? ??
        "gamertag_label_for_splitscreen": {
          // 글자 표시
          "type": "label",
          // 가로/세로 크기
          "size": [
            "default",
            "default"
          ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 기준점에서 이동하는 거리
          "offset": [
            -4,
            4
          ],
          // ?? (R,G,B,A)
          "color": "$hud_gamertag_color",
          // ?? ??
          "text_alignment": "right",
          // 보여줄 글자
          "text": "#gamertag",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#gamertag"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "exp_rend@exp_progress_bar_and_hotbar": { // for pocket
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#hotbar_visible_not_centered",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "exp_rend_resizable@exp_progress_bar_and_hotbar_pocket": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#hotbar_visible_not_centered_resizable",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "hud_tip_text_factory": {
          // 리스트를 자동으로 생성하는 공장
          "type": "factory",
          // ??? ???
          "control_name": "@hud.hud_tip_text"
        }
      },
      {
        // ???/?? ??
        "hud_actionbar_text_area": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 목록 아이템을 자동으로 생성
          "factory": {
            // ?? ??
            "name": "hud_actionbar_text_factory",
            // 팩토리 템플릿 매핑
            "control_ids": {
              // ??? ?? ?
              "hud_actionbar_text": "hud_actionbar_text@hud.hud_actionbar_text"
            }
          }
        }
      },
      {
        // ???/?? ??
        "hud_title_text_area": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 목록 아이템을 자동으로 생성
          "factory": {
            // ?? ??
            "name": "hud_title_text_factory",
            // 팩토리 템플릿 매핑
            "control_ids": {
              // ??? ?? ?
              "hud_title_text": "hud_title_text@hud.hud_title_text"
            }
          }
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "mob_effects_renderer@mob_effects_renderer": {
          // 가로/세로 크기
          "size": [
            "100%",
            "75%"
          ],
          // 기준점에서 이동하는 거리
          "offset": [
            0,
            24
          ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#status_effects_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      //{
      //  "vignette_rend@vignette_renderer": {}
      //},
      //Remove vignette - Alien
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "curor_rend@cursor_renderer": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#show_cursor",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "game_tip@game_tip.game_tip_factory": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "sidebar@scoreboard.scoreboard_sidebar": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#scoreboard_sidebar_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "progress_rend@progress_indicator_renderer": {
          // 기준점에서 이동하는 거리
          "offset": [
            "50%",
            "50%"
          ]
        }
      },
      {
        // Use a stack panel with a padding that we can ignore at runtime as needed
        "chat_stack": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": [
            "40%",
            "100%"
          ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "paper_doll_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [
                  "0%", //Hide padding for paper doll so the chat appears on the top - Alien
                  0
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#paper_doll_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "non_centered_gui_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [
                  "100%",
                  32
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#hud_visible_not_centered",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "player_position@hud.player_position": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "number_of_days_played@hud.number_of_days_played": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "game_tip@game_tip.game_tip_chat_stack_factory": {
                // 가로/세로 크기
                "size": [
                  "100%",
                  "100%c"
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "chat_panel@hud.chat_panel": {}
            }
          ]
        }
      },
      {
        // ???/?? ??
        "boss_health_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": [
            "100%",
            "100%"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "boss_hud_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [
                  "100%",
                  20
                ],
                // 보이기/숨기기(공간 유지)
                "visible": "#boss_hud_padding", //Make this visible to move the boss hud panel down
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#boss_hud_padding",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "boss_hud_touch_padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [
                  "100%",
                  "15%"
                ],
                // 보이기/숨기기(공간 유지)
                "visible": "#boss_hud_touch_padding", //Make this visible to move the boss hud panel down
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#boss_hud_touch_padding",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // ?? ???
                    "binding_condition": "always"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "boss_hud_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "boss_health_grid@boss_health_grid": {
                      // 기준점에서 이동하는 거리
                      "offset": [
                        0,
                        2
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "save_icon@hud.auto_save": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "preserved_title@hud.preserved_title": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "bar_1@hud.animated_progress_bar": {
          // 오버라이드 가능한 변수
          "$background_size": [120, 10],
          // 오버라이드 가능한 변수
          "$bar_size": ["100% - 11px", "100% - 6px"],
          // 오버라이드 가능한 변수
          "$bar_offset": [10, 3],
          // 기준점에서 이동하는 거리
          "offset": [0, 50],

          // 오버라이드 가능한 변수
          "$multiplier": 0.02,
          // 오버라이드 가능한 변수
          "$data_source": "preserved_title",
          // 오버라이드 가능한 변수
          "$progress_binding": "#progress",

          // 오버라이드 가능한 변수
          "$text_format": "('§z' + $progress_binding + '/50')"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "bar_2@hud.animated_progress_bar": {
          // 오버라이드 가능한 변수
          "$background_size": [120, 10],
          // 오버라이드 가능한 변수
          "$bar_size": ["100% - 11px", "100% - 6px"],
          // 오버라이드 가능한 변수
          "$bar_offset": [10, 3],
          // 기준점에서 이동하는 거리
          "offset": [0, 80],

          // 오버라이드 가능한 변수
          "$data_source": "preserved_title",
          // 오버라이드 가능한 변수
          "$progress_binding": "#progress",
          // 오버라이드 가능한 변수
          "$max_value_binding": "#max_value",

          // 오버라이드 가능한 변수
          "$text_format": "('§z' + $progress_binding + '/' + $max_value_binding)"
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#hud_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      },
      {
        // 가져올 값 이름
        "binding_name": "#hud_alpha",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#alpha",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      },
      {
        // 가져올 값 이름
        "binding_name": "#hud_propagate_alpha",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#propagateAlpha",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      }
    ]
  }
}

inventory_screen.json 기본 UI 모음 1 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: inventory_screen.json
// 분류: 기본 UI 모음 1 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// 이 파일의 이름표(다른 파일에서 @로 참조)
	"namespace": "crafting",
	// ???/?? ??
	"player_armor_panel": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": [
			88,
			83
		],
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "top_left",
		// 기준점(어디에서 시작할지)
		"anchor_from": "top_left",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"player_bg": {
					// 이미지 표시
					"type": "image",
					//"texture": "textures/ui/Black", For removing the background of the paper doll in inventory - Alien
					"size": [
						52,
						70
					],
					// 겹치는 순서(숫자 클수록 위)
					"layer": 2,
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_left",
					// 기준점에서 이동하는 거리
					"offset": [
						26,
						8
					],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"player_renderer_panel": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": [
									30,
									30
								],
								// 기준점에서 이동하는 거리
								"offset": [
									0,
									-14
								],
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"player_renderer": {
											// 특수 렌더러(그라디언트/플레이어 등)
											"type": "custom",
											// 커스텀 렌더러 종류
											"renderer": "live_player_renderer",
											// 이 컨트롤 안에서 쓰는 임시 저장소
											"property_bag": {
												// ???/??? ?
												"#look_at_cursor": true
											},
											// ????? ?? ?
											"animation_reset_name": "screen_animation_reset",
											// 애니메이션 목록
											"anims": [
												"@common.screen_exit_size_animation_push",
												"@common.screen_exit_size_animation_pop",
												"@common.screen_entrance_size_animation_push",
												"@common.screen_entrance_size_animation_pop"
											],
											// 겹치는 순서(숫자 클수록 위)
											"layer": 8,
											// 기준점(어디에서 시작할지)
											"anchor_from": "center",
											// 붙일 위치(어디에 놓을지)
											"anchor_to": "center"
										}
									}
								]
							}
						}
					]
				}
			},
			{
				// ???/?? ??
				"player_preview_border": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/player_preview_border",
					// 가로/세로 크기
					"size": [
						54,
						72
					],
					// 겹치는 순서(숫자 클수록 위)
					"layer": 1,
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_left",
					// 기준점에서 이동하는 거리
					"offset": [
						25,
						7
					]
				}
			},
			{
				// ???/?? ??
				"armor_grid": {
					// 격자 컨테이너: 칸칸이 배치
					"type": "grid",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 1,
					// 가로/세로 크기
					"size": [
						18,
						72
					],
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_left",
					// 기준점에서 이동하는 거리
					"offset": [
						7,
						7
					],
					// 그리드 칸 수
					"grid_dimensions": [
						1,
						4
					],
					// 오버라이드 가능한 변수
					"$item_collection_name": "armor_items",
					// 목록 이름
					"collection_name": "$item_collection_name",
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"head_grid_item@common.container_item": {
								// 그리드 위치
								"grid_position": [
									0,
									0
								],
								// 오버라이드 가능한 변수
								"$cell_overlay_ref": "crafting.armor_overlay_helmet",
								// 오버라이드 가능한 변수
								"$button_ref": "crafting.no_coalesce_container_slot_button",
								// 오버라이드 가능한 변수
								"$focus_id_binding_type": "none",
								// 오버라이드 가능한 변수
								"$focus_id": "armor_item_head",
								// 오버라이드 가능한 변수
								"$focus_override_right_binding_type": "none",
								// 오버라이드 가능한 변수
								"$focus_override_right": "crafting_input_top_left"
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"chest_grid_item@common.container_item": {
								// 그리드 위치
								"grid_position": [
									0,
									1
								],
								// 오버라이드 가능한 변수
								"$cell_overlay_ref": "crafting.armor_overlay_chest",
								// 오버라이드 가능한 변수
								"$button_ref": "crafting.no_coalesce_container_slot_button",
								// 오버라이드 가능한 변수
								"$focus_id_binding_type": "none",
								// 오버라이드 가능한 변수
								"$focus_id": "armor_item_chest",
								// 오버라이드 가능한 변수
								"$focus_override_right_binding_type": "none",
								// 오버라이드 가능한 변수
								"$focus_override_right": "crafting_input_top_left"
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"legs_grid_item@common.container_item": {
								// 그리드 위치
								"grid_position": [
									0,
									2
								],
								// 오버라이드 가능한 변수
								"$cell_overlay_ref": "crafting.armor_overlay_legs",
								// 오버라이드 가능한 변수
								"$button_ref": "crafting.no_coalesce_container_slot_button",
								// 오버라이드 가능한 변수
								"$focus_id_binding_type": "none",
								// 오버라이드 가능한 변수
								"$focus_id": "armor_item_legs",
								// 오버라이드 가능한 변수
								"$focus_override_right_binding_type": "none",
								// 오버라이드 가능한 변수
								"$focus_override_right": "crafting_input_mid_left"
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"feet_grid_item@common.container_item": {
								// 그리드 위치
								"grid_position": [
									0,
									3
								],
								// 오버라이드 가능한 변수
								"$cell_overlay_ref": "crafting.armor_image_feet",
								// 오버라이드 가능한 변수
								"$button_ref": "crafting.no_coalesce_container_slot_button",
								// 오버라이드 가능한 변수
								"$focus_id_binding_type": "none",
								// 오버라이드 가능한 변수
								"$focus_id": "armor_item_feet",
								// 오버라이드 가능한 변수
								"$focus_override_right_binding_type": "none",
								// 오버라이드 가능한 변수
								"$focus_override_right": "offhand_items0"
							}
						}
					]
				}
			},
			{
				// ???/?? ??
				"offhand_grid": {
					// 격자 컨테이너: 칸칸이 배치
					"type": "grid",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 1,
					// 가로/세로 크기
					"size": [
						18,
						18
					],
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_left",
					// 기준점에서 이동하는 거리
					"offset": [
						79,
						61
					],
					// 그리드 칸 수
					"grid_dimensions": [
						1,
						1
					],
					// 오버라이드 가능한 변수
					"$item_collection_name": "offhand_items",
					// 목록 이름
					"collection_name": "$item_collection_name",
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"offhand_grid_item@common.container_item": {
								// 그리드 위치
								"grid_position": [
									0,
									0
								],
								// 오버라이드 가능한 변수
								"$cell_overlay_ref": "crafting.armor_overlay_shield",
								// 오버라이드 가능한 변수
								"$button_ref": "crafting.no_coalesce_container_slot_button",
								// 오버라이드 가능한 변수
								"$focus_override_left_binding_type": "none",
								// 오버라이드 가능한 변수
								"$focus_override_left": "armor_item_feet"
							}
						}
					]
				}
			}
		]
	},
	// 다른 템플릿을 가져와서 확장(상속)
	"toolbar_panel@crafting.crafting_root_panel": {
		// 가로/세로 크기
		"size": [
			"100%c",
			20
		],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"toolbar_background@crafting.toolbar_background": {
					// 가로/세로 크기
					"size": [
						"100%cm",
						"100% + 8px"
					],
					// 기준점에서 이동하는 거리
					"offset": [
						0,
						-3
					],
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_right",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_right",
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"toolbar_stack_panel": {
								// 줄맞춤 컨테이너: 가로/세로로 자동 배치
								"type": "stack_panel",
								// 쌓는 방향(가로/세로)
								"orientation": "horizontal",
								// 가로/세로 크기
								"size": [
									"default",
									"100% - 8px"
								],
								// 기준점에서 이동하는 거리
								"offset": [
									0,
									3
								],
								// 기준점(어디에서 시작할지)
								"anchor_from": "top_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "top_middle",
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"left_trigger_anchor": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												0,
												"100%"
											],
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 가져올 값 이름
													"binding_name": "#gamepad_helper_visible",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#visible"
												}
											],
											// 이 안에 들어가는 부품 목록
											"controls": [
												{
													// 다른 템플릿을 가져와서 확장(상속)
													"gamepad_helper_left_trigger@common.gamepad_helper_left_trigger": {
														// 기준점에서 이동하는 거리
														"offset": [
															3,
															-2
														],
														// 기준점(어디에서 시작할지)
														"anchor_from": "left_middle",
														// 붙일 위치(어디에 놓을지)
														"anchor_to": "right_middle"
													}
												}
											]
										}
									},
									{
										// ???/?? ??
										"padding_0": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												8,
												0
											]
										}
									},
									{
										// ???/?? ??
										"creative_layout_toggle_panel": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												"100%c",
												"100%"
											],
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 게임이 주는 전역 값 연결
													"binding_type": "global",
													// 가져올 값 이름
													"binding_name": "#creative_layout_button_visible",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#visible"
												}
											],
											// 이 안에 들어가는 부품 목록
											"controls": [
												{
													// 다른 템플릿을 가져와서 확장(상속)
													"creative_layout_toggle@crafting.creative_layout_toggle": {
														// 오버라이드 가능한 변수
														"$focus_override_left": "search_tab"
													}
												}
											]
										}
									},
									{
										// ???/?? ??
										"padding_1": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												2,
												0
											],
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 게임이 주는 전역 값 연결
													"binding_type": "global",
													// 가져올 값 이름
													"binding_name": "#creative_layout_button_visible",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#visible"
												}
											]
										}
									},
									{
										// ???/?? ??
										"recipe_book_layout_toggle_panel_survival": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												25,
												"100%"
											],
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 게임이 주는 전역 값 연결
													"binding_type": "global",
													// 가져올 값 이름
													"binding_name": "(not #is_creative_mode)",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#visible"
												}
											],
											// 이 안에 들어가는 부품 목록
											"controls": [
												{
													// 다른 템플릿을 가져와서 확장(상속)
													"recipe_book_layout_toggle@crafting.recipe_book_layout_toggle": {
														// 오버라이드 가능한 변수
														"$focus_override_left": "search_tab"
													}
												}
											]
										}
									},
									{
										// ???/?? ??
										"recipe_book_layout_toggle_panel_creative": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												"100%c",
												"100%"
											],
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 게임이 주는 전역 값 연결
													"binding_type": "global",
													// 가져올 값 이름
													"binding_name": "#is_creative_mode",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#visible"
												}
											],
											// 이 안에 들어가는 부품 목록
											"controls": [
												{
													// 다른 템플릿을 가져와서 확장(상속)
													"recipe_book_layout_toggle@crafting.recipe_book_layout_toggle": {}
												}
											]
										}
									},
									{
										// ???/?? ??
										"padding_2": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												1,
												0
											]
										}
									},
									{
										// ???/?? ??
										"survival_layout_toggle_panel": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												"100%c",
												"100%"
											],
											// 이 안에 들어가는 부품 목록
											"controls": [
												{
													// 다른 템플릿을 가져와서 확장(상속)
													"survival_layout_toggle@crafting.survival_layout_toggle": {}
												}
											]
										}
									},
									{
										// ???/?? ??
										"padding_3": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												4,
												0
											]
										}
									},
									//{
									//	"help_button_panel": {
									//	  "type": "panel",
									//	  "size": [
									//		"100%c",
									//		"100%"
									//	  ],
									//	  "controls": [
									//		{
									//		  "help_button@crafting.help_button": {}
									//		}
									//	  ]
									//	}
									//},
									//Hide how to play button - Alien
									{
										// ???/?? ??
										"close_button_panel": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												15,
												"100%"
											],
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 가져올 값 이름
													"binding_name": "#close_button_visible",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#visible"
												}
											],
											// 이 안에 들어가는 부품 목록
											"controls": [
												{
													// 다른 템플릿을 가져와서 확장(상속)
													"close_button@common.light_close_button": {
														// 기준점에서 이동하는 거리
														"offset": [
															0,
															0
														],
														// 기준점(어디에서 시작할지)
														"anchor_from": "center",
														// 붙일 위치(어디에 놓을지)
														"anchor_to": "center"
													}
												}
											]
										}
									},
									{
										// ???/?? ??
										"padding_4": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												6,
												0
											]
										}
									},
									{
										// ???/?? ??
										"right_trigger_anchor": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												0,
												"100%"
											],
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 가져올 값 이름
													"binding_name": "#gamepad_helper_visible",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#visible"
												}
											],
											// 이 안에 들어가는 부품 목록
											"controls": [
												{
													// 다른 템플릿을 가져와서 확장(상속)
													"gamepad_helper_right_trigger@common.gamepad_helper_right_trigger": {
														// 기준점에서 이동하는 거리
														"offset": [
															-2,
															-2
														],
														// 기준점(어디에서 시작할지)
														"anchor_from": "right_middle",
														// 붙일 위치(어디에 놓을지)
														"anchor_to": "left_middle"
													}
												}
											]
										}
									}
								]
							}
						}
					]
				}
			}
		]
	}
}

loom_screen.json 기본 UI 모음 1 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: loom_screen.json
// 분류: 기본 UI 모음 1 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// 이 파일의 이름표(다른 파일에서 @로 참조)
	"namespace": "loom",
	// 다른 템플릿을 가져와서 확장(상속)
	"toolbar_panel@common.root_panel": {
		// 가로/세로 크기
		"size": [
			"100%c",
			20
		],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"toolbar_background@loom.toolbar_background": {
					// 가로/세로 크기
					"size": [
						"100%cm",
						"100% + 8px"
					],
					// 기준점에서 이동하는 거리
					"offset": [
						0,
						-3
					],
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_right",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_right",
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"toolbar_stack_panel": {
								// 줄맞춤 컨테이너: 가로/세로로 자동 배치
								"type": "stack_panel",
								// 쌓는 방향(가로/세로)
								"orientation": "horizontal",
								// 가로/세로 크기
								"size": [
									"default",
									"100% - 8px"
								],
								// 기준점에서 이동하는 거리
								"offset": [
									0,
									3
								],
								// 기준점(어디에서 시작할지)
								"anchor_from": "top_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "top_middle",
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"padding_1": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												6,
												0
											]
										}
									},
									//{
									//	"help_button_panel": {
									//	  "type": "panel",
									//	  "size": [ "100%c", "100%" ],
									//	  "controls": [
									//	    { "help_button@loom.help_button": {} }
									//	  ]
									//	}
									//},
									//Hide how to play button - Alien
									{
										// ???/?? ??
										"close_button_panel": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												"100%c",
												"100%"
											],
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 가져올 값 이름
													"binding_name": "#close_button_visible",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#visible"
												}
											],
											// 이 안에 들어가는 부품 목록
											"controls": [
												{
													// 다른 템플릿을 가져와서 확장(상속)
													"close_button@common.light_close_button": {
														// 가로/세로 크기
														"size": [
															"100%cm",
															"100%cm"
														],
														// 기준점에서 이동하는 거리
														"offset": [
															0,
															0
														],
														// 기준점(어디에서 시작할지)
														"anchor_from": "center",
														// 붙일 위치(어디에 놓을지)
														"anchor_to": "center"
													}
												}
											]
										}
									},
									{
										// ???/?? ??
										"padding_2": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												6,
												0
											]
										}
									}
								]
							}
						}
					]
				}
			}
		]
	}
}

loom_screen_pocket.json 기본 UI 모음 1 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: loom_screen_pocket.json
// 분류: 기본 UI 모음 1 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// 이 파일의 이름표(다른 파일에서 @로 참조)
	"namespace": "loom_pocket",
	// ???/?? ??
	"right_navigation_tabs": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 쌓는 방향(가로/세로)
		"orientation": "vertical",
		// 가로/세로 크기
		"size": [
			35,
			"100%"
		],
		// 기준점에서 이동하는 거리
		"offset": [
			-4,
			0
		],
		// 기준점(어디에서 시작할지)
		"anchor_from": "top_left",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "top_left",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"pocket_tab_close_button@common_tabs.pocket_tab_close_button": {}
			},
			{
				// ???/?? ??
				"padding": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": [
						0,
						1
					]
				}
			},
			//{
			//	"pocket_tab_help_button@common_tabs.pocket_tab_help_button": {}
			//},
			//Hide how to play button - Alien
			{
				// ???/?? ??
				"fill": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": [
						"100%",
						"fill"
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"right_tab_loom@loom_pocket.right_tab_loom": {
					// 오버라이드 가능한 변수
					"$is_bottom_most_tab": true
				}
			}
		]
	}
}

npc_interact_screen.json 기본 UI 모음 1 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: npc_interact_screen.json
// 분류: 기본 UI 모음 1 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "npc_interact",

  //---------------------------------------------------------------------------
  // NPC Dialog Screen Customization
  //---------------------------------------------------------------------------

  // Main screen definition
  "npc_screen": {
    // 컨트롤 종류
    "type": "screen",
    // ?? ??
    "force_render_below": true,
    // 오버라이드 가능한 변수
    "$screen_bg_content": "common.screen_background",
    // 오버라이드 가능한 변수
    "$screen_content": "npc_interact.npc_screen_content",

    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_exit",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_exit",
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_cancel",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_exit",
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      }
    ]
  },

  //---------------------------------------------------------------------------
  // Customizable Elements
  //---------------------------------------------------------------------------

  // NPC 이름 라벨 커스터마이징
  "basic_stack_panel/name_label": {
    "color": [1.0, 1.0, 0.0],          // 노란색으로 변경
    "font_type": "smooth",              // 폰트 타입 변경 (default, smooth, rune 등)
    "font_scale_factor": 1.2,           // 폰트 크기 20% 증가
    "shadow": true,                     // 그림자 활성화
    "text_alignment": "center"          // 텍스트 중앙 정렬
  },

  // NPC 외형/설명 라벨 커스터마이징
  "basic_stack_panel/appearance_label": {
    "color": [0.7, 0.7, 0.7],          // 회색으로 변경
    // ??
    "font_type": "default",
    "font_scale_factor": 0.9,           // 폰트 크기 10% 감소
    // ?? ??
    "shadow": true
  },

  // NPC 대화 메시지 텍스트 커스터마이징
  "npc_message/label": {
    "color": [1.0, 1.0, 1.0],          // 흰색 텍스트
    "locked_color": [0.5, 0.5, 0.5],   // 잠긴 상태일 때 어두운 회색
    // ??
    "font_type": "smooth",
    // ?? ?? ??
    "font_scale_factor": 1.0,
    // ?? ??
    "shadow": true,
    "line_padding": 2,                  // 줄 간격 설정
    "text_alignment": "left"            // 왼쪽 정렬
  },

  // 학생/플레이어 메시지 말풍선 배경 커스터마이징
  "student_message_bubble": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/dialog_bubble",  // 커스텀 텍스처 경로 (또는 ""로 비우기)
    "alpha": 0.8,                            // 투명도 80%
    // 가로/세로 크기
    "size": ["100%", "100%c + 10px"]         // 크기 조정
  },

  // 학생 메시지 섹션의 포인터(화살표) 제거/수정
  "student_message_section/point": {
    // 완전히 제거(공간도 없음)
    "ignored": true                     // true면 숨김, false면 표시
  },

  // NPC 3D 모델 위치 조정
  "message_model/model": {
    // 기준점에서 이동하는 거리
    "offset": [0, 20],                  // [X, Y] X: 좌우, Y: 상하
    // 가로/세로 크기
    "size": [100, 100]                  // 모델 크기 조정
  },

  // 모델 배경 윈도우 커스터마이징
  "message_model_window": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",     // 배경 텍스처 (""로 비우면 투명)
    "alpha": 0.3,                       // 투명도
    "color": [0.2, 0.2, 0.3]           // 색조 조정 (어두운 파란색)
  },

  // 대화 옵션 버튼 라벨 커스터마이징
  "student_button_label": {
    "color": [1.0, 1.0, 1.0],          // 버튼 텍스트 색상
    // ??
    "font_type": "smooth",
    // ?? ?? ??
    "font_scale_factor": 1.0,
    // ?? ??
    "shadow": true
  },

  // 대화 옵션 버튼 스타일 커스터마이징
  "student_button@common_buttons.light_text_button": {
    // 가로/세로 크기
    "size": ["100%", 24],               // 버튼 크기
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_select",

    // 버튼 상태별 텍스처 커스터마이징
    "$default_texture": "textures/ui/button_default",
    // 오버라이드 가능한 변수
    "$hover_texture": "textures/ui/button_hover",
    // 오버라이드 가능한 변수
    "$pressed_texture": "textures/ui/button_pressed",

    // 버튼 색상 (RGB)
    "$default_color": [0.3, 0.3, 0.4],
    // 오버라이드 가능한 변수
    "$hover_color": [0.4, 0.4, 0.5],
    // 오버라이드 가능한 변수
    "$pressed_color": [0.2, 0.2, 0.3]
  },

  //---------------------------------------------------------------------------
  // Dialog Window Customization
  //---------------------------------------------------------------------------

  // 대화창 메인 패널 커스터마이징
  "dialog_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [300, 200],                 // 대화창 크기 [너비, 높이]
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 기준점에서 이동하는 거리
    "offset": [0, 0],                   // [X, Y] 위치 오프셋

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 대화창 배경
        "dialog_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/dialog_background",  // 커스텀 배경 이미지
          // ???
          "alpha": 0.9,
          // 가로/세로 크기
          "size": ["100%", "100%"],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // 다이얼로그 라벨 (제목) 커스터마이징
  "basic_stack_panel/dialog_label": {
    "color": [1.0, 0.8, 0.2],          // 금색
    // ??
    "font_type": "smooth",
    // ?? ?? ??
    "font_scale_factor": 1.3,
    // ?? ??
    "shadow": true,
    // ?? ??
    "text_alignment": "center",
    // 완전히 제거(공간도 없음)
    "ignored": false                    // false면 표시, true면 숨김
  },

  // 대화 후 패딩 조정
  "basic_stack_panel/dialog_post_padding": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [0, 10],                   // 여백 크기 [너비, 높이]
    // 완전히 제거(공간도 없음)
    "ignored": false
  },

  // 대화 패딩 조정
  "basic_stack_panel/dialog__padding": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [0, 5],
    // 완전히 제거(공간도 없음)
    "ignored": false
  },

  // 대화 버튼 커스터마이징
  "basic_stack_panel/dialog_button": {
    // 가로/세로 크기
    "size": ["100%", 30],
    // 완전히 제거(공간도 없음)
    "ignored": false
  },

  //---------------------------------------------------------------------------
  // Advanced Customization Examples
  //---------------------------------------------------------------------------

  // 예제 1: 커스텀 애니메이션이 있는 대화창
  "dialog_fade_in_anim": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_out_cubic",
    // 걸리는 시간(초)
    "duration": 0.3,
    // 시작 값
    "from": 0.0,
    // 끝 값
    "to": 1.0
  },

  // 예제 2: 커스텀 색상 변수 정의
  "$npc_name_color": [1.0, 1.0, 0.0],        // 노란색
  // 오버라이드 가능한 변수
  "$npc_message_color": [1.0, 1.0, 1.0],     // 흰색
  // 오버라이드 가능한 변수
  "$npc_locked_color": [0.5, 0.5, 0.5],      // 회색
  // 오버라이드 가능한 변수
  "$button_text_color": [1.0, 1.0, 1.0],     // 흰색
  // 오버라이드 가능한 변수
  "$background_alpha": 0.9,                   // 배경 투명도

  //---------------------------------------------------------------------------
  // Usage Instructions (주석)
  //---------------------------------------------------------------------------
  //
  // 사용 방법:
  // 1. 이 파일을 리소스팩의 ui 폴더에 배치
  // 2. 원하는 요소의 값을 수정
  // 3. texture 경로는 실제 리소스팩의 텍스처 경로와 일치해야 함
  //
  // 주요 속성:
  // - color: [R, G, B] (0.0 ~ 1.0 범위)
  // - alpha: 투명도 (0.0 = 완전 투명, 1.0 = 불투명)
  // - size: [width, height] (픽셀 또는 "100%", "100%c" 등)
  // - offset: [x, y] (위치 조정)
  // - font_type: "default", "smooth", "rune" 등
  // - font_scale_factor: 폰트 크기 배율
  // - shadow: true/false (텍스트 그림자)
  // - ignored: true/false (요소 숨김/표시)
  //
  // 텍스처 경로 예시:
  // - "textures/ui/dialog_background" -> textures/ui/dialog_background.png
  // - "" -> 투명/없음
  // - "textures/ui/White" -> 기본 흰색 텍스처 (색상 적용 가능)
  //
  //---------------------------------------------------------------------------

  "comment": "NPC Dialog Screen Customization Template - Edit values above to customize your NPC dialogs"
}

pause_screen.json 기본 UI 모음 1 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: pause_screen.json
// 분류: 기본 UI 모음 1 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // 다른 템플릿을 가져와서 확장(상속)
    "menu_background@pause.transparent_background": {
        // 가로/세로 크기
        "size": [
            "100% - 2px",
            "100%c + 8px"
        ],
        // 기준점(어디에서 시작할지)
        "anchor_from": "center",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "center",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "button_panel": {
                    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                    "type": "stack_panel",
                    // 가로/세로 크기
                    "size": [
                        "100% - 8px",
                        "100%c"
                    ],
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "center",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "center",
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "return_to_game_button@pause.return_to_game_button": {}
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "return@pause.vertical_padding": {}
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "realms_stories_button_panel@pause.realms_stories_button_panel": {}
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "realms_stories@pause.vertical_padding": {
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#is_realm_level",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#visible",
                                        // 게임이 주는 전역 값 연결
                                        "binding_type": "global"
                                    }
                                ]
                            }
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "settings_button@pause.settings_button": {}
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "settings@pause.vertical_padding": {}
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "buy_button@pause.buy_button": {}
                        },
                        //{
                        //    "buy@pause.vertical_padding": {
                        //        "bindings": [
                        //            {
                        //                "binding_name": "#is_trial_version",
                        //                "binding_name_override": "#visible",
                        //                "binding_type": "global"
                        //            }
                        //        ]
                        //    }
                        //},
                        // {
                        //     "store_button_panel@pause.store_button_panel": {}
                        // },
                        // Remove marketplace button
                        //{
                        //    "server@pause.vertical_padding": {
                        //        "ignored": "$is_secondary_client",
                        //        "bindings": [
                        //            {
                        //                "binding_name": "#store_button_visible",
                        //                "binding_name_override": "#visible",
                        //                "binding_type": "global"
                        //            }
                        //        ]
                        //    }
                        //},
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "quit_button@pause.quit_button": {}
                        }
                    ]
                }
            }
        ]
    }
}

play_screen.json 기본 UI 모음 1 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: play_screen.json
// 분류: 기본 UI 모음 1 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "play",

  //---------------------------------------------------------------------------
  // Common
  //---------------------------------------------------------------------------

  "label_background": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/mainbanners"
  },

  // ???/?? ??
  "dark_label_background": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/BannersLight"
  },

  // ???/?? ??
  "world_screenshot_base": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "100%cm + 2px", "100%" ],
    // 사용할 이미지 경로
    "texture": "$border_texture",
    // 기준점(어디에서 시작할지)
    "anchor_from": "left_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "left_middle",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "collection_world_screenshot@play.world_screenshot_base": {
    // 오버라이드 가능한 변수
    "$fit_image_to_width|default": false,
    // 오버라이드 가능한 변수
    "$collection_binding_name|default": "",
    // 오버라이드 가능한 변수
    "$image_binding_name|default": "",
    // 오버라이드 가능한 변수
    "$texture_source_binding_name|default": "",
    // 오버라이드 가능한 변수
    "$supports_realmsplus_overlay|default": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "screenshot_picture": {
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 오버라이드 가능한 변수
          "$fit_to_width": "$fit_image_to_width",
          // ??? ?? ?
          "force_texture_reload": true,
          // 가로/세로 크기
          "size": [ "173.91%y", "100% - 2px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 1, 1 ],
          // ?? ??
          "fill": true,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$image_binding_name",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$collection_binding_name"
            },
            {
              // 가져올 값 이름
              "binding_name": "$texture_source_binding_name",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture_file_system",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$collection_binding_name"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "gradient_container_stacked_panel": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $supports_realmsplus_overlay)",
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "vertical",
                // 가로/세로 크기
                "size": [ "100%cm", "100%" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#realmsplus_expired_visible",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 목록 이름
                    "binding_collection_name": "$collection_binding_name"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "gradient_image_realmsplus_expired": {
                      // 이미지 표시
                      "type": "image",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 가로/세로 크기
                      "size": [ "69.5%y", "50%" ],
                      // 사용할 이미지 경로
                      "texture": "textures/ui/realmsparkle"
                    }
                  },
                  {
                    // ???/?? ??
                    "solid_image_realmsplus_expired": {
                      // 이미지 표시
                      "type": "image",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 가로/세로 크기
                      "size": [ "69.5%y", "50%" ],
                      // 사용할 이미지 경로
                      "texture": "textures/ui/realmsparkle1",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "exclamationmark": {
                            // 글자 표시
                            "type": "label",
                            // ?? (R,G,B,A)
                            "color": "$realmsplus_exclamation_mark_color",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1,
                            // 보여줄 글자
                            "text": "!",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "bottom_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "bottom_middle",
                            // 기준점에서 이동하는 거리
                            "offset": [ 1, -1 ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "world_item_grid_base": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ "100%", "default" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left"
  },

  //---------------------------------------------------------------------------
  // Common Icons
  //---------------------------------------------------------------------------

  "edit_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/editIcon",
    // 가로/세로 크기
    "size": [ 22, 16 ]
  },

  // ???/?? ??
  "realms_stories_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/realmsStoriesIcon",
    // 가로/세로 크기
    "size": [ 22, 22 ]
  },

  // ???/?? ??
  "realms_stories_icon_animated": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/realmsStoriesIconAnimated",
    // 가로/세로 크기
    "size": [ 22, 22 ],
    // ???? ??
    "uv_size": [ 22, 22 ],
    // ???? ?? ??
    "uv": "@play.anim_realms_stories_icon",
    // ????? ?? ?
    "disable_anim_fast_forward": true
  },

  // ???/?? ??
  "anim_realms_stories_icon": {
    // 프레임 애니메이션
    "anim_type": "flip_book",
    // ?? ??
    "initial_uv": [ 0, 0 ],
    // ?? ??
    "frame_count": 13,
    // ?? ??
    "fps": 4,
    // ?? ??
    "looping": false,
    // 움직임 곡선
    "easing": "linear",
    // ?? ??
    "wait_until_rendered_to_play": true
  },

  // ???/?? ??
  "realms_slots_edit_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/realmsSlotsEditIcon",
    // 가로/세로 크기
    "size": [ 22, 22 ]
  },

  // ???/?? ??
  "worlds_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/worldsIcon",
    // 가로/세로 크기
    "size": [ 16, 17 ]
  },

  // ???/?? ??
  "realms_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/realmsIcon",
    // 가로/세로 크기
    "size": [ 11, 14 ]
  },

  // ???/?? ??
  "realms_chevron": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/realms_chevron_play",
    // 가로/세로 크기
    "size": [ 23, 28 ]
  },

  // ???/?? ??
  "friends_icon_1": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/Friend1",
    // 가로/세로 크기
    "size": [ 10, 10 ]
  },

  // ???/?? ??
  "friends_icon_2": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/Friend2",
    // 가로/세로 크기
    "size": [ 10, 10 ]
  },

  // ???/?? ??
  "bell_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/icon_bell",
    // 가로/세로 크기
    "size": [ 20, 20 ]
  },

  // ???/?? ??
  "invite_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/invite_base",
    // 가로/세로 크기
    "size": [ 20, 20 ]
  },

  // ???/?? ??
  "delete_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/trash_light",
    // 가로/세로 크기
    "size": [ 22, 16 ]
  },

  // ???/?? ??
  "world_download_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/world_download",
    // 가로/세로 크기
    "size": [ 15, 16 ]
  },

  // To create the bouncing effect of alternating bounces for the notification icon
  // the durations have to be alternated and then resynced with the wait time.
  "anim_icon_wait_A": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 0.14,
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_A_bounce_in_2",
    // ?? ??
    "end_event": "friend_icon_bounce_start"
  },

  // ???/?? ??
  "anim_icon_wait_B": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 0.1,
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_B_bounce_in_2",
    // ?? ??
    "end_event": "friend_icon_bounce_start"
  },

  // ???/?? ??
  "anim_count_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 0.14,
    // 다음 애니메이션으로 연결
    "next": "@play.anim_count_bounce_in_2",
    // ?? ??
    "end_event": "friend_icon_bounce_start"
  },

  // ???/?? ??
  "anim_icon_wait_A_2": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 0.1,
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_A_bounce_in_3",
    // ?? ??
    "end_event": "friend_icon_bounce_start"
  },

  // ???/?? ??
  "anim_icon_wait_B_2": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 0.14,
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_B_bounce_in_3",
    // ?? ??
    "end_event": "friend_icon_bounce_start"
  },

  // ???/?? ??
  "anim_count_wait_2": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 0.1,
    // 다음 애니메이션으로 연결
    "next": "@play.anim_count_bounce_in_3",
    // ?? ??
    "end_event": "friend_icon_bounce_start"
  },

  // After three bounces the icon waits for three seconds.
  "anim_icon_wait_A_3": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 3.04,
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_A_bounce_in",
    // ?? ??
    "end_event": "friend_icon_bounce_start"
  },

  // ???/?? ??
  "anim_icon_wait_B_3": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 2.97,
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_B_bounce_in",
    // ?? ??
    "end_event": "friend_icon_bounce_start"
  },

  // ???/?? ??
  "anim_count_wait_3": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 3.04,
    // 다음 애니메이션으로 연결
    "next": "@play.anim_count_bounce_in",
    // ?? ??
    "end_event": "friend_icon_bounce_start"
  },

  // The icon is always being offseted by a constant amount, going up by 4 then down by 4
  // This is to get the text in the right position at the beginning.
  "anim_count_wait_offset": {
    // 위치 이동
    "anim_type": "offset",
    // 걸리는 시간(초)
    "duration": 1.00,
    // 시작 값
    "from": [ -5, 1 ],
    // 끝 값
    "to": [ -5, 1 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_count_wait_3"
  },

  // Alternating between .185 and .225, and being resynced with waits.
  "anim_icon_A_bounce_in": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.185,
    // 시작 값
    "from": [ -5, 2 ],
    // 끝 값
    "to": [ -5, -2 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_A_bounce_out"
  },

  // ???/?? ??
  "anim_icon_A_bounce_out": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.185,
    // 시작 값
    "from": [ -5, -2 ],
    // 끝 값
    "to": [ -5, 2 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_wait_A",
    // ?? ??
    "end_event": "friend_icon_bounce_end"
  },

  // ???/?? ??
  "anim_icon_B_bounce_in": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.225,
    // 시작 값
    "from": [ 0, -3 ],
    // 끝 값
    "to": [ 0, -7 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_B_bounce_out"
  },

  // ???/?? ??
  "anim_icon_B_bounce_out": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.225,
    // 시작 값
    "from": [ 0, -7 ],
    // 끝 값
    "to": [ 0, -3 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_wait_B",
    // ?? ??
    "end_event": "friend_icon_bounce_end"
  },

  // ???/?? ??
  "anim_icon_A_bounce_in_2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.225,
    // 시작 값
    "from": [ -5, 2 ],
    // 끝 값
    "to": [ -5, -2 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_A_bounce_out_2"
  },

  // ???/?? ??
  "anim_icon_A_bounce_out_2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.225,
    // 시작 값
    "from": [ -5, -2 ],
    // 끝 값
    "to": [ -5, 2 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_wait_A_2",
    // ?? ??
    "end_event": "friend_icon_bounce_end"
  },

  // ???/?? ??
  "anim_icon_B_bounce_in_2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.185,
    // 시작 값
    "from": [ 0, -3 ],
    // 끝 값
    "to": [ 0, -7 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_B_bounce_out_2"
  },

  // ???/?? ??
  "anim_icon_B_bounce_out_2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.185,
    // 시작 값
    "from": [ 0, -7 ],
    // 끝 값
    "to": [ 0, -3 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_wait_B_2",
    // ?? ??
    "end_event": "friend_icon_bounce_end"
  },

  // ???/?? ??
  "anim_icon_A_bounce_in_3": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.185,
    // 시작 값
    "from": [ -5, 2 ],
    // 끝 값
    "to": [ -5, -2 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_A_bounce_out_3"
  },

  // ???/?? ??
  "anim_icon_A_bounce_out_3": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.185,
    // 시작 값
    "from": [ -5, -2 ],
    // 끝 값
    "to": [ -5, 2 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_wait_A_3",
    // ?? ??
    "end_event": "friend_icon_bounce_end"
  },

  // ???/?? ??
  "anim_icon_B_bounce_in_3": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.225,
    // 시작 값
    "from": [ 0, -3 ],
    // 끝 값
    "to": [ 0, -7 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_B_bounce_out_3"
  },

  // ???/?? ??
  "anim_icon_B_bounce_out_3": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.225,
    // 시작 값
    "from": [ 0, -7 ],
    // 끝 값
    "to": [ 0, -3 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_icon_wait_B_3",
    // ?? ??
    "end_event": "friend_icon_bounce_end"
  },

  // ???/?? ??
  "anim_count_bounce_in": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.185,
    // 시작 값
    "from": [ -5, 1 ],
    // 끝 값
    "to": [ -5, -3 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_count_bounce_out"
  },

  // ???/?? ??
  "anim_count_bounce_out": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.185,
    // 시작 값
    "from": [ -5, -3 ],
    // 끝 값
    "to": [ -5, 1 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_count_wait",
    // ?? ??
    "end_event": "friend_icon_bounce_end"
  },

  // ???/?? ??
  "anim_count_bounce_in_2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.225,
    // 시작 값
    "from": [ -5, 1 ],
    // 끝 값
    "to": [ -5, -3 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_count_bounce_out_2"
  },

  // ???/?? ??
  "anim_count_bounce_out_2": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.225,
    // 시작 값
    "from": [ -5, -3 ],
    // 끝 값
    "to": [ -5, 1 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_count_wait_2",
    // ?? ??
    "end_event": "friend_icon_bounce_end"
  },

  // ???/?? ??
  "anim_count_bounce_in_3": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.185,
    // 시작 값
    "from": [ -5, 1 ],
    // 끝 값
    "to": [ -5, -3 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_count_bounce_out_3"
  },

  // ???/?? ??
  "anim_count_bounce_out_3": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.185,
    // 시작 값
    "from": [ -5, -3 ],
    // 끝 값
    "to": [ -5, 1 ],
    // 다음 애니메이션으로 연결
    "next": "@play.anim_count_wait_3",
    // ?? ??
    "end_event": "friend_icon_bounce_end"
  },

  // ???/?? ??
  "third_party_servers_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/addServer",
    // 가로/세로 크기
    "size": [ 17, 13 ]
  },

  // ???/?? ??
  "lan_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/lan_icon",
    // 가로/세로 크기
    "size": [ 14, 14 ]
  },

  // ???/?? ??
  "friends_server_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 14, 14 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#friends_server_icon_texture_name",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#texture",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "friends_network_worlds"
      }
    ]
  },

  // ???/?? ??
  "cross_platform_friends_server_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 14, 14 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#cross_platform_friends_server_icon_texture_name",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#texture",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "cross_platform_friends_network_worlds"
      }
    ]
  },

  // ???/?? ??
  "realms_remove_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/redX1",
    // 가로/세로 크기
    "size": [ 12, 12 ]
  },

  // ???/?? ??
  "game_online_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/online",
    // 가로/세로 크기
    "size": [ 8, 8 ]
  },

  // ???/?? ??
  "game_offline_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/offline",
    // 가로/세로 크기
    "size": [ 8, 8 ]
  },

  // ???/?? ??
  "game_unavailable_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/offline",
    // 가로/세로 크기
    "size": [ 8, 8 ]
  },

  // ???/?? ??
  "import_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/import",
    // 가로/세로 크기
    "size": [ 16, 16 ]
  },

  // ???/?? ??
  "upload_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/upload_glyph",
    // 가로/세로 크기
    "size": [ 16, 16 ]
  },

  // ???/?? ??
  "add_server_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/addServer",
    // 가로/세로 크기
    "size": [ 17, 13 ]
  },

  // ???/?? ??
  "server_tab_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/servers",
    // 가로/세로 크기
    "size": [ 15, 15 ]
  },

  // ???/?? ??
  "realms_art_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/realms_art_icon",
    // 가로/세로 크기
    "size": [ 647, 760 ]
  },

  // ???/?? ??
  "realms_text_background": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/realms_text_background"
  },

  // ???/?? ??
  "connected_storage": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/local_and_cloud_storage",
    // 가로/세로 크기
    "size": [ 12, 8 ]
  },

  // ???/?? ??
  "feedback_icon": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/Feedback",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3,
    // 가로/세로 크기
    "size": [ 16, 16 ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "local_only_storage@play.connected_storage": {
    // 사용할 이미지 경로
    "texture": "textures/ui/local_only_storage"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "local_and_cloud_storage@play.connected_storage": {
    // 사용할 이미지 경로
    "texture": "textures/ui/local_and_cloud_storage"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "cloud_only_storage@play.connected_storage": {
    // 사용할 이미지 경로
    "texture": "textures/ui/cloud_only_storage"
  },

  // ???/?? ??
  "left_arrow_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 7, 7 ],
    // 사용할 이미지 경로
    "texture": "textures/ui/arrow_left_white",
    // ?? (R,G,B,A)
    "color": "$text_color"
  },

  // ???/?? ??
  "right_arrow_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 7, 7 ],
    // 사용할 이미지 경로
    "texture": "textures/ui/arrow_right_white",
    // ?? (R,G,B,A)
    "color": "$text_color"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "small_progress_panel@progress.progress_loading_bars": {
    // 가로/세로 크기
    "size": [ 20, 10 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 5,
    // ?? (R,G,B,A)
    "color": "$dark_button_default_text_color",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "(not #ping_ready_thirdparty)",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ]
  },

  //---------------------------------------------------------------------------
  // SIGN IN TO JOIN REALMS PROMPT
  //---------------------------------------------------------------------------

  "sign_in_realms_image": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%cm", "100%cm" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "chevron@play.realms_chevron": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 기준점에서 이동하는 거리
          "offset": "$chevron_offset"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "portal@play.realms_icon": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 기준점에서 이동하는 거리
          "offset": "$portal_offset"
        }
      }
    ],
    // this is to counteract the image moving down when the button is pressed
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$pressed_state",
        // 오버라이드 가능한 변수
        "$chevron_offset": [ -3, -1 ],
        // 오버라이드 가능한 변수
        "$portal_offset": [ -6, -1 ]
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "(not $pressed_state)",
        // 오버라이드 가능한 변수
        "$chevron_offset": [ -3, 0 ],
        // 오버라이드 가능한 변수
        "$portal_offset": [ -6, 0 ]
      }
    ]
  },

  // ???/?? ??
  "realms_sign_in_prompt_label": {
    // 글자 표시
    "type": "label",
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 보여줄 글자
    "text": "#realms_sign_in_prompt",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "left_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "left_middle",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#realms_sign_in_prompt"
      }
    ]
  },

  // ???/?? ??
  "realms_sign_in_prompt": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "fill", "100%sm" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "realms_sign_in_prompt_label@play.realms_sign_in_prompt_label": {}
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "realms_sign_in_prompt_friends@play.realms_sign_in_prompt": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "realms_sign_in_prompt_label_friends@play.realms_sign_in_prompt_label": {
          // 보여줄 글자
          "text": "#realms_sign_in_prompt_friends",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#realms_sign_in_prompt_friends"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "sign_in_to_view_realms_content_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%cm" ],
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 오버라이드 가능한 변수
    "$prompt": "play.realms_sign_in_prompt",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "sign_in_realms_image@play.sign_in_realms_image": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "realms_sign_in_prompt@$prompt": {}
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "sign_in_to_view_realms_content_panel_friends@play.sign_in_to_view_realms_content_panel": {
    // 오버라이드 가능한 변수
    "$prompt": "play.realms_sign_in_prompt_friends"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "sign_in_to_view_realms_button@common_buttons.dark_content_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_sign_in_to_view_realms",
    // 오버라이드 가능한 변수
    "$button_content": "play.sign_in_to_view_realms_content_panel",
    // 가로/세로 크기
    "size": [ "100%", 29 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#realms_sign_in_button_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "sign_in_to_view_realms_button_friends@play.sign_in_to_view_realms_button": {
    // 오버라이드 가능한 변수
    "$button_content": "play.sign_in_to_view_realms_content_panel_friends"
  },

  //---------------------------------------------------------------------------
  // REALMS WORLD GRID
  //---------------------------------------------------------------------------

  "realms_list_text": {
    // 글자 표시
    "type": "label",
    // ?? (R,G,B,A)
    "color": "$text_color",
    // ?? ??
    "shadow": false,
    // 보여줄 글자
    "text": "$text",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 오버라이드 가능한 변수
    "$text_binding_type|default": "none",
    // 오버라이드 가능한 변수
    "$realms_worlds_collection_name|default": "",
    // 오버라이드 가능한 변수
    "$text_binding_condition|default": "none",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // ?? ???
        "binding_condition": "$text_binding_condition",
        // 가져올 값 이름
        "binding_name": "$text",
        // 바인딩 종류(변수로 관리되는 경우도 있음)
        "binding_type": "$text_binding_type",
        // 목록 이름
        "binding_collection_name": "$realms_worlds_collection_name"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "realms_world_header@play.realms_list_text": {
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 가로/세로 크기
    "size": [ "100%", 10 ],
    // 오버라이드 가능한 변수
    "$text": "#realms_world_header",
    // 오버라이드 가능한 변수
    "$text_binding_type": "collection"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "realms_world_details@play.realms_list_text": {
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_left",
    // 가로/세로 크기
    "size": [ "100%", 10 ],
    // ?? (R,G,B,A)
    "color": "$secondary_text_color",
    // 오버라이드 가능한 변수
    "$text": "#realms_world_details",
    // 오버라이드 가능한 변수
    "$text_binding_type": "collection"
  },


  // 다른 템플릿을 가져와서 확장(상속)
  "realms_world_type@play.realms_list_text": {
    // 가로/세로 크기
    "size": [ "default", 10 ],
    // ?? (R,G,B,A)
    "color": "$secondary_text_color",
    // 오버라이드 가능한 변수
    "$text": "selectWorld.worldTags.hardcore",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#realms_world_is_hardcore",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$realms_worlds_collection_name"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "realms_world_player_count@play.world_list_text": {
    // 보여줄 글자
    "text": "#realms_world_player_count",
    // ?? (R,G,B,A)
    "color": "$secondary_text_color",
    // 가로/세로 크기
    "size": [ "default", 10 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#realms_world_player_count",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$realms_worlds_collection_name"
      }
    ]
  },

  // ???/?? ??
  "realms_world_game_status_icon": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 10, 10 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "game_online_icon@play.game_online_icon": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#realms_game_online",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$realms_worlds_collection_name"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "game_unavailable_icon@play.game_unavailable_icon": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#realms_game_unavailable",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$realms_worlds_collection_name"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "game_offline_icon@play.game_offline_icon": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#realms_game_offline",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$realms_worlds_collection_name"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "realms_world_text_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%-2px", "100%-2px" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "realms_world_header@play.realms_world_header": {} },
      { "realms_world_details@play.realms_world_details": {} }
    ]
  },

  // ???/?? ??
  "realms_world_trial_text_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%-2px", "100%-2px" ],
    // 오버라이드 가능한 변수
    "$world_header_text_binding_type|default": "none",
    // 오버라이드 가능한 변수
    "$world_details_text|default": "#player_gamertag",
    // 오버라이드 가능한 변수
    "$world_details_text_binding_type|default": "global",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "realms_world_header_text@play.realms_list_text": {
          // 오버라이드 가능한 변수
          "$text": "$button_content_text",
          // 오버라이드 가능한 변수
          "$text_binding_type": "$world_header_text_binding_type",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 가로/세로 크기
          "size": [ "100%", 10 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "realms_world_details@play.realms_list_text": {
          // 오버라이드 가능한 변수
          "$text": "$world_details_text",
          // ?? (R,G,B,A)
          "color": "$secondary_text_color",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left",
          // 가로/세로 크기
          "size": [ "100%", 10 ]
        }
      }
    ]
  },

  // ???/?? ??
  "realms_world_content_text_area_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "realms_world_text_panel@play.realms_world_text_panel": {} }
    ]
  },

  // ???/?? ??
  "realms_trial_content_text_area_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "realms_world_trial_text_panel@play.realms_world_trial_text_panel": {} }
    ]
  },

  // ???/?? ??
  "realms_world_content_status_area_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100%c", "100%cm" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "world_player_count_text_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "realms_world_player_count@play.realms_world_player_count": {
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 2, 10 ]
        }
      },
      { "realms_world_game_status_icon@play.realms_world_game_status_icon": {} }
    ]
  },

  // ???/?? ??
  "realms_world_content_status_area_panel_container": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%cm", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "realms_world_status_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%sm", "100%c" ],
          // ?? ?? ?
          "min_size": [ "100%c", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "realms_world_content_status_area_panel@play.realms_world_content_status_area_panel": {}
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "realms_world_type@play.realms_world_type": {}
      }
    ]
  },

  // ???/?? ??
  "realms_world_content_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "($realms_worlds_collection_name = $personal_realm_collection_name)",
        // 오버라이드 가능한 변수
        "$show_screenshot": true
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "($realms_worlds_collection_name = $friend_realm_collection_name)",
        // 오버라이드 가능한 변수
        "$show_screenshot": false
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$default_state",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/default_indent"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$hover_state",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/world_screenshot_focus_border"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$pressed_state",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/world_screenshot_focus_border"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$locked_state",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/default_indent"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "realm_screenshot@play.realm_screenshot": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $show_screenshot)"
        }
      },
      {
        // ???/?? ??
        "padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 2, "100%" ],
          // 완전히 제거(공간도 없음)
          "ignored": "(not $show_screenshot)"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "realms_world_content_text_area_panel@play.realms_world_content_text_area_panel": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "realms_world_content_status_area_panel": {
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "realms_world_content_status_area_panel_container@play.realms_world_content_status_area_panel_container": {}
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "realms_trial_content_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$default_state",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/default_indent"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$hover_state",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/world_screenshot_focus_border"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$pressed_state",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/world_screenshot_focus_border"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$locked_state",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/default_indent"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "realm_screenshot@play.realm_screenshot": {} },
      {
        // ???/?? ??
        "padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 2, "100%" ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "realms_trial_content_text_area_panel@play.realms_trial_content_text_area_panel": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "realms_world_item_button@common_buttons.dark_content_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_start_realms_world",
    // 오버라이드 가능한 변수
    "$button_content": "play.realms_world_content_panel",
    // 오버라이드 가능한 변수
    "$personal_realm_collection_name": "personal_realms",
    // 오버라이드 가능한 변수
    "$friend_realm_collection_name": "friends_realms",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "$realms_worlds_collection_name"
      },
      {
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 가져올 값 이름
        "binding_name": "#world_button_focus_identifier",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#focus_identifier",
        // 목록 이름
        "binding_collection_name": "$realms_worlds_collection_name"
      },
      {
        // 가져올 값 이름
        "binding_name": "#cross_platform_enabled",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#enabled"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "realms_world_edit_button@common_buttons.dark_glyph_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_realms_world_item_edit",
    // 오버라이드 가능한 변수
    "$button_content": "play.realms_slots_edit_icon",
    // 오버라이드 가능한 변수
    "$button_tts_header": "accessibility.play.editRealm",
    // 가로/세로 크기
    "size": [ "100%y", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "$realms_worlds_collection_name"
      },
      {
        // 가져올 값 이름
        "binding_name": "#cross_platform_enabled",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#enabled"
      }
    ]
  },

  // ???/?? ??
  "realms_feed_button_content": {
    // 이미지 표시
    "type": "image",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "default_icon@play.realms_stories_icon": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 가져올 값 이름
              "binding_name": "(not #realms_unread_story_count_visible)",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 이름
              "binding_collection_name": "$realms_worlds_collection_name"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "unread_icon_active@play.realms_stories_icon_animated": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 가져올 값 이름
              "binding_name": "#realms_unread_story_count_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 이름
              "binding_collection_name": "$realms_worlds_collection_name"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "persistent_realms_feed_button_control@common_buttons.new_ui_button_panel": {
    // 오버라이드 가능한 변수
    "$new_ui_button_texture": "$default_button_texture",
    // 오버라이드 가능한 변수
    "$glyph_color": "$dark_glyph_default_color",
    // 오버라이드 가능한 변수
    "$border_color": "$dark_border_default_color",
    // 오버라이드 가능한 변수
    "$button_press_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$border_layer": 2,
    // 오버라이드 가능한 변수
    "$border_alpha": 0,
    // 오버라이드 가능한 변수
    "$button_image_alpha": 0,
    // 오버라이드 가능한 변수
    "$content_alpha": 0,
    // 겹치는 순서(숫자 클수록 위)
    "layer": 4,
    // 오버라이드 가능한 변수
    "$button_content": "play.realms_feed_button_content"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "realms_feed_button@common_buttons.dark_glyph_button_with_custom_control": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_realms_feed",
    // 오버라이드 가능한 변수
    "$custom_control": "play.persistent_realms_feed_button_control",
    // 오버라이드 가능한 변수
    "$button_tts_header": "#realms_feed_button_tts_header",
    // 가로/세로 크기
    "size": [ "100%y", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "$realms_worlds_collection_name"
      },
      {
        // 가져올 값 이름
        "binding_name": "#menu_realms_feed_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      },
      {
        // 가져올 값 이름
        "binding_name": "#realms_feed_button_tts_header",
        // 목록 이름
        "binding_collection_name": "$realms_worlds_collection_name",
        // 목록 데이터를 반복 연결
        "binding_type": "collection"
      },
      {
        // 가져올 값 이름
        "binding_name": "#cross_platform_enabled",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#enabled"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "leave_friends_realm_button@common_buttons.dark_glyph_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_realms_world_item_remove",
    // 오버라이드 가능한 변수
    "$button_content": "play.realms_remove_icon",
    // 오버라이드 가능한 변수
    "$button_tts_header": "accessibility.play.leaveRealm",
    // 가로/세로 크기
    "size": [ "100%y", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "$realms_worlds_collection_name"
      },
      {
        // 가져올 값 이름
        "binding_name": "#cross_platform_enabled",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#enabled"
      }
    ]
  },

  // ???/?? ??
  "unread_story_count_text": {
    // 글자 표시
    "type": "label",
    // ?? (R,G,B,A)
    "color": "$tab_secondary_unchecked_text_color",
    // ?? ??
    "shadow": false,
    // 보여줄 글자
    "text": "#realms_unread_story_count",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 가져올 값 이름
        "binding_name": "#realms_unread_story_count",
        // 목록 이름
        "binding_collection_name": "$realms_worlds_collection_name"
      }
    ]
  },

  // ???/?? ??
  "unread_story_count_text_background": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/invite_number_background"
  },

  // ???/?? ??
  "unread_story_count_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "right_middle",
    // 가로/세로 크기
    "size": [ "100%c", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "text@play.unread_story_count_text": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 9,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "background@play.unread_story_count_text_background": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": -1,
                // 가로/세로 크기
                "size": [ "100%+4px", "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ -0.5, 0 ]
              }
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 가져올 값 이름
        "binding_name": "#realms_unread_story_count_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // 목록 이름
        "binding_collection_name": "$realms_worlds_collection_name"
      }
    ]
  },

  // ???/?? ??
  "realms_world_item": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [ "100%", 29 ],
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "realms_world_item_button@play.realms_world_item_button": {
          // 가로/세로 크기
          "size": [ "fill", "100% + 1px" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "edit_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%y - 1px", "100% + 1px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "realms_world_edit_button@play.realms_world_edit_button": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            },
            {
              // ???/?? ??
              "realms_world_expiry_notification_image": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/update",
                // 기준점에서 이동하는 거리
                "offset": [ 0, -10 ],
                // 가로/세로 크기
                "size": [ 8, 15 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_right",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 7,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 가져올 값 이름
                    "binding_name": "#realms_world_expiry_notification_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 목록 이름
                    "binding_collection_name": "$realms_worlds_collection_name"
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#realms_edit_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$realms_worlds_collection_name"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "feed_panel_with_unread_count": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%y - 1px", "100% + 1px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "feed_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%y", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "realms_feed_button@play.realms_feed_button": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "unread_story_count@play.unread_story_count_panel": {
                // 기준점에서 이동하는 거리
                "offset": [ 0, 1.5 ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "leave_realm_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c - 1px", "100% + 1px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "leave_friends_realm_button@play.leave_friends_realm_button": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#leave_realm_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$realms_worlds_collection_name"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "realms_world_item_grid@play.world_item_grid_base": {
    // ??? ?? ?
    "grid_item_template": "$grid_item_layout",
    // ??? ?? ?
    "grid_dimension_binding": "$grid_name",
    // 목록 이름
    "collection_name": "$realms_worlds_collection_name",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "$grid_name"
      },
      {
        // 가져올 값 이름
        "binding_name": "#realms_grids_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ]
  },

  //---------------------------------------------------------------------------
  // FRIENDS WORLD GRID
  //---------------------------------------------------------------------------

  "network_world_header": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100%", 10 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 오버라이드 가능한 변수
    "$header_icon_visible|default": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "network_world_header_icon": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ 10, 10 ],
          // 완전히 제거(공간도 없음)
          "ignored": "(not $header_icon_visible)",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#network_world_header_icon_texture_path",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$collection_name"
            },
            {
              // 가져올 값 이름
              "binding_name": "#network_world_header_icon_texture_location",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture_file_system",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$collection_name"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "spacer": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $header_icon_visible)",
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 5, 0 ]
        }
      },
      {
        // ???/?? ??
        "header_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "network_world_header_text@play.world_list_text": {
                // 보여줄 글자
                "text": "#network_world_header",
                // ?? (R,G,B,A)
                "color": "$text_color",
                // 기준점에서 이동하는 거리
                "offset": [ 0, 1 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#network_world_header",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "$collection_name"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "network_world_details@play.world_list_text": {
    // 보여줄 글자
    "text": "#network_world_details",
    // ?? (R,G,B,A)
    "color": "$secondary_text_color",
    // 가로/세로 크기
    "size": [ "100%", 10 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_left",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#network_world_details",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$collection_name"
      }
    ]
  },

  // ???/?? ??
  "network_world_player_count": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", 10 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "count@play.world_list_text": {
          // 보여줄 글자
          "text": "#network_world_player_count",
          // ?? (R,G,B,A)
          "color": "$secondary_text_color",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#network_world_player_count",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$collection_name"
            },
            {
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 가져올 값 이름
              "binding_name": "#network_world_player_count_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 이름
              "binding_collection_name": "$collection_name"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "network_world_game_status_icon": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 10, 10 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "game_online_icon@play.game_online_icon": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#game_online",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$collection_name"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "game_unavailable_icon@play.game_unavailable_icon": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#game_unavailable",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$collection_name"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "game_offline_icon@play.game_offline_icon": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#game_offline",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$collection_name"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "network_world_text_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%-2px", "100%-2px" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "network_world_header@play.network_world_header": {} },
      { "network_world_details@play.network_world_details": {} }
    ]
  },

  // ???/?? ??
  "network_world_content_text_area_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "network_world_text_panel@play.network_world_text_panel": {} }
    ]
  },

  // ???/?? ??
  "network_world_content_status_area_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100%c", "100%cm" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "network_player_count_text_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "network_world_player_count@play.network_world_player_count": {
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 2, 10 ]
        }
      },
      { "network_world_game_status_icon@play.network_world_game_status_icon": {} }
    ]
  },

  // ???/?? ??
  "network_world_content_status_area_panel_container": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%cm", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "network_world_status_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%sm", "100%c" ],
          // ?? ?? ?
          "min_size": [ "100%c", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "network_world_content_status_area_panel@play.network_world_content_status_area_panel": {}
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "network_world_type@play.network_world_type": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 가져올 값 이름
              "binding_name": "#network_world_is_hardcore",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 이름
              "binding_collection_name": "$collection_name"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "network_world_type": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", 10 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "type@play.world_list_text": {
          // 보여줄 글자
          "text": "selectWorld.worldTags.hardcore",
          // ?? (R,G,B,A)
          "color": "$secondary_text_color"
        }
      }
    ]
  },

  // ???/?? ??
  "network_world_item_button_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "network_world_content_text_area_panel@play.network_world_content_text_area_panel": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "network_status_area_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "network_world_content_status_area_panel_container@play.network_world_content_status_area_panel_container": {}
            }
          ]
        }
      },
      {
        // ???/?? ??
        "network_world_type_icon": {
          // 글자 표시
          "type": "label",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 완전히 제거(공간도 없음)
          "ignored": "$hide_network_icon",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 6, 10 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "$network_world_icon@$network_world_icon": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "network_world_item_button@common_buttons.dark_content_button": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_network_world_item",
    // 오버라이드 가능한 변수
    "$button_content": "play.network_world_item_button_content",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "$collection_name"
      },
      {
        // 가져올 값 이름
        "binding_name": "#network_world_button_enabled",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#enabled",
        // 목록 이름
        "binding_collection_name": "$collection_name",
        // 목록 데이터를 반복 연결
        "binding_type": "collection"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "network_server_world_edit_button@common_buttons.dark_glyph_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_network_server_world_edit",
    // 오버라이드 가능한 변수
    "$button_content": "play.edit_icon",
    // 오버라이드 가능한 변수
    "$button_tts_header": "accessibility.play.editServer",
    // 가로/세로 크기
    "size": [ "100%y", "100% + 1px" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "$collection_name"
      },
      {
        // 가져올 값 이름
        "binding_name": "#network_world_button_enabled",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#enabled",
        // 목록 이름
        "binding_collection_name": "$collection_name",
        // 목록 데이터를 반복 연결
        "binding_type": "collection"
      }
    ]
  },

  // ???/?? ??
  "network_world_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [ "100%", 30 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "network_world_item_button@play.network_world_item_button": {
          // 가로/세로 크기
          "size": [ "100%", "100% + 1px" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "network_world_item_grid@play.world_item_grid_base": {
    // ??? ?? ?
    "grid_item_template": "$network_world_grid_item_template",
    // ??? ?? ?
    "grid_dimension_binding": "$network_world_item_grid_dimension_binding",
    // 목록 이름
    "collection_name": "$collection_name",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "$network_world_item_grid_dimension_binding"
      }
    ]
  },

  // ???/?? ??
  "label_content_template": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [ "100%", "100%c + 4px" ],
    // 오버라이드 가능한 변수
    "$hide_network_icon|default": false,
    // 오버라이드 가능한 변수
    "$label_panel_visible|default": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "label_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 오버라이드 가능한 변수
          "$label_offset|default": [ 1, 0 ],
          // 오버라이드 가능한 변수
          "$label_size|default": [ "100%", "default" ],
          // 보이기/숨기기(공간 유지)
          "visible": "$label_panel_visible",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "label_panel_layout": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 가로/세로 크기
                "size": [ "100%-4px", "100%c+2px" ],
                // 기준점에서 이동하는 거리
                "offset": "$label_offset",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "label": {
                      // 글자 표시
                      "type": "label",
                      // ?? (R,G,B,A)
                      "color": "$dark_button_default_text_color",
                      // 가로/세로 크기
                      "size": "$label_size",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // ?? ??
                      "shadow": false,
                      // 보여줄 글자
                      "text": "$label_content_label",
                      // 오버라이드 가능한 변수
                      "$label_content_label_binding_type|default": "none",
                      // 오버라이드 가능한 변수
                      "$label_content_label_binding_condition|default": "none",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "$label_content_label",
                          // 바인딩 종류(변수로 관리되는 경우도 있음)
                          "binding_type": "$label_content_label_binding_type",
                          // ?? ???
                          "binding_condition": "$label_content_label_binding_condition"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "content@$label_content_content": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // ???/?? ??
  "information_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%cm" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@play.dark_label_background": {
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "label_panel_layout": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 가로/세로 크기
                "size": [ "100%-8px", "100%c + 8px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "label": {
                      // 글자 표시
                      "type": "label",
                      // 오버라이드 가능한 변수
                      "$information_label_font|default": "default",
                      // ??
                      "font_type": "$information_label_font",
                      // ?? (R,G,B,A)
                      "color": "$dark_button_default_text_color",
                      // 가로/세로 크기
                      "size": [ "100%", "default" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // ?? ??
                      "shadow": false,
                      // 보여줄 글자
                      "text": "$information_panel_label_text",
                      // 오버라이드 가능한 변수
                      "$information_panel_label_text_binding_type|default": "none",
                      // 오버라이드 가능한 변수
                      "$information_panel_label_text_binding_condition|default": "none",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "$information_panel_label_text",
                          // 바인딩 종류(변수로 관리되는 경우도 있음)
                          "binding_type": "$information_panel_label_text_binding_type",
                          // ?? ???
                          "binding_condition": "$information_panel_label_text_binding_condition"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "focus_button@common.non_interact_focus_border_button": {
          // 가로/세로 크기
          "size": [ "100%", "100%sm" ],
          // ?? ??
          "tts_inherit_siblings": true
        }
      }
    ]
  },

  // ???/?? ??
  "blocked_multiplayer_privileges_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@play.dark_label_background": {
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "label_panel_layout": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 가로/세로 크기
                "size": [ "100%-8px", "100%c + 8px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "label": {
                      // 글자 표시
                      "type": "label",
                      // ?? (R,G,B,A)
                      "color": "$dark_button_default_text_color",
                      // 가로/세로 크기
                      "size": [ "100%", "default" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // ?? ??
                      "shadow": false,
                      // 보이기/숨기기(공간 유지)
                      "visible": false,

                      // 보여줄 글자
                      "text": "#privilegesBlockedText",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#privilegesBlockedText",
                          // 게임이 주는 전역 값 연결
                          "binding_type": "global",
                          // ?? ???
                          "binding_condition": "always_when_visible"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  //---------------------------------------------------------------------------
  // RECENT SERVER GRID
  //---------------------------------------------------------------------------

  "more_servers_grid": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ "100%", "default" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // ??? ?? ?
    "grid_item_template": "more_servers_world_item",
    // ??? ?? ?
    "grid_dimension_binding": "#servers_network_world_item_grid_dimension",
    // 목록 이름
    "collection_name": "servers_network_worlds",
    // 오버라이드 가능한 변수
    "$collection_name": "servers_network_worlds",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // ?? ??
    "ttsSectionContainer": true,
    // 오버라이드 가능한 변수
    "$toggle_index_binding_name": "#additional_server_toggle_index",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#servers_network_world_item_grid_dimension"
      }
    ]
  },

  // ???/?? ??
  "additional_server_toggle_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$toggle_unchecked",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/default_indent"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$toggle_unchecked_hover",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/world_screenshot_focus_border"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$toggle_checked_hover",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/world_screenshot_focus_border"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$toggle_checked",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/default_indent"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$toggle_locked",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/default_indent"
      }
    ],
    // 오버라이드 가능한 변수
    "$secondary_text_color": "$dark_button_secondary_default_text_color",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "network_world_content_text_area_panel@play.network_world_content_text_area_panel": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // ???/?? ??
  "more_servers_label_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 10 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "list_label": {
          // 글자 표시
          "type": "label",
          // ?? (R,G,B,A)
          "color": "$dark_button_default_text_color",
          // 가로/세로 크기
          "size": [ "100%", 10 ],
          // 기준점에서 이동하는 거리
          "offset": [ 1, 0 ],
          // 보여줄 글자
          "text": "$label_text"
        }
      }
    ]
  },

  // ???/?? ??
  "more_servers_world_item": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [ "100%", 30 ],
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "additional_server_toggle_base@play.server_toggle_base": {
          // 오버라이드 가능한 변수
          "$focus_override_right": "edit_server",
          // 가로/세로 크기
          "size": [ "fill", "100% + 1px" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 오버라이드 가능한 변수
          "$button_content": "play.additional_server_toggle_content",
          // 오버라이드 가능한 변수
          "$toggle_index_binding_name": "#additional_server_toggle_index"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "network_server_world_edit_button@play.network_server_world_edit_button": {
          // 오버라이드 가능한 변수
          "$focus_id": "edit_server",
          // 오버라이드 가능한 변수
          "$focus_override_right": "right_side",
          // 완전히 제거(공간도 없음)
          "ignored": "$ignore_add_servers",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "additional_server_info_panel@play.common_scroll_pane": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#is_network_available_and_multiplayer_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "server_info_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": [ "100%- 2px", "100%c + 1px" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "padding_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 2 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "server_name@play.world_list_text": {
                // 보여줄 글자
                "text": "#info_additional_server_name",
                // ?? ??
                "localize": false,
                // ?? (R,G,B,A)
                "color": "$main_header_text_color",
                // ??
                "font_type": "smooth",
                // ?? ??
                "text_alignment": "left",
                // 가로/세로 크기
                "size": [ "100%", 10 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#info_additional_server_name"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_2": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 2 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "player_count@play.text_icon_number_panel": {
                // 오버라이드 가능한 변수
                "$text_icon_number_text": "networkWorld.online",
                // 오버라이드 가능한 변수
                "$text_icon_number_icon": "#server_player_count_icon",
                // 오버라이드 가능한 변수
                "$text_icon_number_number": "#info_additional_server_player_count",
                // 오버라이드 가능한 변수
                "$icon_size": [ 5, 5 ]
              }
            },
            {
              // ???/?? ??
              "padding_3": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 2 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "ping@play.text_icon_number_panel": {
                // 오버라이드 가능한 변수
                "$text_icon_number_text": "networkWorld.current_ping",
                // 오버라이드 가능한 변수
                "$text_icon_number_icon": "#info_additional_server_ping_texture_name",
                // 오버라이드 가능한 변수
                "$text_icon_number_number": "#info_additional_server_ping",
                // 오버라이드 가능한 변수
                "$icon_size": [ 8, 8 ],
                // 오버라이드 가능한 변수
                "$ping_bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#ping_ready_thirdparty",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ],
                // 오버라이드 가능한 변수
                "$progress_panel": "play.small_progress_panel",
                // 오버라이드 가능한 변수
                "$number_bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "$text_icon_number_number"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#ping_ready_external",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_4": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 2 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "join_server_button@common_buttons.light_text_button": {
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.menu_network_server_item",
                // 오버라이드 가능한 변수
                "$button_text": "networkWorld.join_server",
                // 오버라이드 가능한 변수
                "$focus_override_left": "left_panel",
                // 가로/세로 크기
                "size": [ "100%", 20 ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "ping_rate_icon": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 8, 8 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#texture_name",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#texture",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$collection_name"
      }
    ]
  },

  // ???/?? ??
  "ping_rate_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "concurrency_stack": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", 10 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "player_count": {
                // 글자 표시
                "type": "label",
                // 가로/세로 크기
                "size": [ "default", 10 ],
                // 보여줄 글자
                "text": "#server_player_count",
                // ?? (R,G,B,A)
                "color": "$text_color",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 가져올 값 이름
                    "binding_name": "#server_player_count",
                    // 목록 이름
                    "binding_collection_name": "$collection_name"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_0": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 2, "100%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "ping_rate_icon@play.ping_rate_icon": {}
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 가져올 값 이름
              "binding_name": "(#is_network_available_and_ping_not_loading)",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 이름
              "binding_collection_name": "third_party_server_network_worlds"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "add_server_info_panel@play.common_scroll_pane": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "server_info_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": [ "100%- 2px", "100%c + 1px" ],
          // 보이기/숨기기(공간 유지)
          "visible": "(not $is_console)",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "padding_0": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 4 ]
              }
            },
            {
              // ???/?? ??
              "add_server_title": {
                // 글자 표시
                "type": "label",
                // 보여줄 글자
                "text": "externalServerScreen.addServerTitle",
                // ?? (R,G,B,A)
                "color": "$body_text_color",
                // ?? ??
                "text_alignment": "left",
                // 가로/세로 크기
                "size": [ "100%", 10 ]
              }
            },
            {
              // ???/?? ??
              "padding_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 2 ]
              }
            },
            {
              // ???/?? ??
              "add_server_description": {
                // 글자 표시
                "type": "label",
                // 보여줄 글자
                "text": "externalServerScreen.addServerDescription",
                // ?? (R,G,B,A)
                "color": "$body_text_color",
                // ??
                "font_type": "smooth",
                // ?? ?? ??
                "font_scale_factor": 0.8,
                // ?? ??
                "text_alignment": "left",
                // 가로/세로 크기
                "size": [ "100%", "default" ]
              }
            }
          ]
        }
      }
    ]
  },

  //---------------------------------------------------------------------------
  // FEATURED SERVER GRID
  //---------------------------------------------------------------------------

  "third_party_featured_server_grid": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ "100%", "default" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // ??? ?? ?
    "grid_item_template": "featured_server_world_item",
    // ??? ?? ?
    "grid_dimension_binding": "#third_party_featured_item_grid_dimension",
    // 목록 이름
    "collection_name": "third_party_server_network_worlds",
    // 오버라이드 가능한 변수
    "$collection_name": "third_party_server_network_worlds",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // ?? ??
    "ttsSectionContainer": true,
    // 오버라이드 가능한 변수
    "$toggle_index_binding_name": "#third_party_toggle_index",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#third_party_featured_item_grid_dimension"
      },
      {
        // 가져올 값 이름
        "binding_name": "#featured_servers_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ]
  },

  // ???/?? ??
  "featured_server_world_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 40 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "server_button@play.server_toggle_base": {
          // 오버라이드 가능한 변수
          "$button_content": "play.server_button_content_panel",
          // 오버라이드 가능한 변수
          "$toggle_index_binding_name": "#third_party_toggle_index"
        }
      }
    ]
  },

  // ???/?? ??
  "server_button_content_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$toggle_unchecked",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/default_indent"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$toggle_unchecked_hover",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/world_screenshot_focus_border"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$toggle_checked_hover",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/world_screenshot_focus_border"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$toggle_checked",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/default_indent"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$toggle_locked",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/default_indent"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "top_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%", "50%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "third_party_server_screenshot@play.third_party_server_screenshot": {
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#third_party_screenshot_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "$collection_name"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_0": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 6, "100%" ]
              }
            },
            {
              // ???/?? ??
              "title_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "fill", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "third_party_server_name@play.world_list_text": {
                      // 보여줄 글자
                      "text": "#third_party_server_name",
                      // ?? ??
                      "localize": false,
                      // ?? (R,G,B,A)
                      "color": "$text_color",
                      // ??
                      "font_type": "smooth",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 2 ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#third_party_server_name",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "$collection_name"
                        },
                        {
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 가져올 값 이름
                          "binding_name": "#is_server_info_available_collection",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible",
                          // 목록 이름
                          "binding_collection_name": "third_party_server_network_worlds"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "progress@progress.progress_loading_bars": {
                      // 가로/세로 크기
                      "size": [ "100% - 8px", "100% - 4px" ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 5,
                      // ?? (R,G,B,A)
                      "color": "$text_color",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 가져올 값 이름
                          "binding_name": "(not #is_server_info_available_collection)",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible",
                          // 목록 이름
                          "binding_collection_name": "third_party_server_network_worlds"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      },
      {
        // ???/?? ??
        "bottom_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "50% - 2px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "third_party_server_message@play.world_list_text": {
                // 보여줄 글자
                "text": "#third_party_server_message",
                // ?? ??
                "localize": false,
                // ?? (R,G,B,A)
                "color": "$dark_button_default_text_color",
                // ??
                "font_type": "smooth",
                // 가로/세로 크기
                "size": [ "100% - 4px", "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 2, 1 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#third_party_server_message",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "$collection_name"
                  },
                  {
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 가져올 값 이름
                    "binding_name": "(not #is_network_available)",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 목록 이름
                    "binding_collection_name": "third_party_server_network_worlds"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "third_party_server_content_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "ping_rate_panel@play.ping_rate_panel": {}
      }
    ]
  },

  // ???/?? ??
  "loading_featured_servers_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // ?? ?? ?
    "min_size": [ "100%", 60 ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 2 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "load_bars": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 12 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "progress_loading_bars@common_store.progress_loading_bars": {
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "third_party_server_screenshot": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "100%c + 2px", "100%" ],
    // 사용할 이미지 경로
    "texture": "$border_texture",
    // 기준점(어디에서 시작할지)
    "anchor_from": "left_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "left_middle",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "picture": {
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 가로/세로 크기
          "size": [ "177.78%y", "100% - 2px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 1, 1 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#third_party_server_logo_texture_path",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture",
              // 목록 이름
              "binding_collection_name": "$collection_name"
            },
            {
              // 가져올 값 이름
              "binding_name": "#third_party_server_logo_resource_location",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture_file_system",
              // 목록 이름
              "binding_collection_name": "$collection_name"
            },
            {
              // 가져올 값 이름
              "binding_name": "#third_party_server_logo_resource_location",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture_file_system"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "third_party_server_info_panel@play.common_scroll_pane": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#featured_servers_visible_and_available",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "server_info_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": [ "100%- 2px", "100%c + 1px" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#is_server_info_available",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "padding_0": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 4 ]
              }
            },
            {
              // ???/?? ??
              "server_screenshot": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 가로/세로 크기
                "size": [ "100%", "56.25%x" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#info_third_party_server_logo_texture_path",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#third_party_server_logo_resource_location",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture_file_system"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#third_party_server_logo_resource_location",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture_file_system",
                    // 목록 이름
                    "binding_collection_name": "server_games_collection"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#info_third_party_screenshot_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 2 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "server_name@play.world_list_text": {
                // 보여줄 글자
                "text": "#info_third_party_server_name",
                // ?? ??
                "localize": false,
                // ?? (R,G,B,A)
                "color": "$main_header_text_color",
                // ??
                "font_type": "smooth",
                // ?? ??
                "text_alignment": "left",
                // 가로/세로 크기
                "size": [ "100%", 10 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#info_third_party_server_name"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_2": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 2 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "player_count@play.text_icon_number_panel": {
                // 오버라이드 가능한 변수
                "$text_icon_number_text": "networkWorld.online",
                // 오버라이드 가능한 변수
                "$text_icon_number_icon": "#server_player_count_icon",
                // 오버라이드 가능한 변수
                "$text_icon_number_number": "#info_third_party_server_player_count",
                // 오버라이드 가능한 변수
                "$icon_size": [ 5, 5 ]
              }
            },
            {
              // ???/?? ??
              "padding_3": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 2 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "ping@play.text_icon_number_panel": {
                // 오버라이드 가능한 변수
                "$text_icon_number_text": "networkWorld.current_ping",
                // 오버라이드 가능한 변수
                "$text_icon_number_icon": "#info_ping_texture_name",
                // 오버라이드 가능한 변수
                "$text_icon_number_number": "#info_server_ping",
                // 오버라이드 가능한 변수
                "$icon_size": [ 8, 8 ],
                // 오버라이드 가능한 변수
                "$ping_bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#ping_ready_thirdparty",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ],
                // 오버라이드 가능한 변수
                "$progress_panel": "play.small_progress_panel"
              }
            },
            {
              // ???/?? ??
              "padding_4": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 2 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "join_server_button@common_buttons.light_text_button": {
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.connect_to_third_party_server",
                // 오버라이드 가능한 변수
                "$button_text": "networkWorld.join_server",
                // 오버라이드 가능한 변수
                "$focus_override_left": "left_panel",
                // 가로/세로 크기
                "size": [ "100%", 20 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "view_offers_button@common_buttons.light_text_button": {
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.view_third_party_server_offers",
                // 오버라이드 가능한 변수
                "$button_text": "networkWorld.view_offers",
                // 오버라이드 가능한 변수
                "$focus_override_left": "left_panel",
                // 가로/세로 크기
                "size": [ "100%", 20 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#view_offers_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_5": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 2 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "screenshots_section@play.screenshots_section_panel": {
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#server_has_screenshots",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "description_section@play.description_section_panel": {
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#server_has_description",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "games_section@play.games_section_panel": {
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#server_has_games",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "news_section@play.news_section_panel": {
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#server_has_news",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "progress@progress.progress_loading_bars": {
          // 가로/세로 크기
          "size": [ "100% - 8px", 15 ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 8 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 5,
          // ?? (R,G,B,A)
          "color": "$dark_button_default_text_color",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "(not #is_server_info_available)",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "text_icon_number_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100%", 10 ],
    // 오버라이드 가능한 변수
    "$ping_bindings|default": [],
    // 오버라이드 가능한 변수
    "$progress_bindings|default": [],
    // 오버라이드 가능한 변수
    "$progress_panel|default": "play.empty_panel",
    // 오버라이드 가능한 변수
    "$number_bindings|default": [
      {
        // 가져올 값 이름
        "binding_name": "$text_icon_number_number"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 보여줄 글자
        "text": {
          // 글자 표시
          "type": "label",
          // 가로/세로 크기
          "size": [ "default", "default" ],
          // ?? (R,G,B,A)
          "color": "$main_header_text_color",
          // ??
          "font_type": "smooth",
          // ?? ??
          "text_alignment": "left",
          // 보여줄 글자
          "text": "$text_icon_number_text"
        }
      },
      {
        // ???/?? ??
        "padding_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 3, "100%" ]
        }
      },
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": "$ping_bindings",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "icon_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%c", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "icon": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": "$icon_size",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "$text_icon_number_icon",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#texture"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 4, "100%" ]
              }
            },
            {
              // ???/?? ??
              "number": {
                // 글자 표시
                "type": "label",
                // 가로/세로 크기
                "size": [ "default", "default" ],
                // ?? (R,G,B,A)
                "color": "$main_header_text_color",
                // ??
                "font_type": "smooth",
                // ?? ??
                "text_alignment": "left",
                // 보여줄 글자
                "text": "$text_icon_number_number",
                // 게임 값과 연결하는 규칙 목록
                "bindings": "$number_bindings"
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "$progress_panel@$progress_panel": {}
      }
    ]
  },

  // ???/?? ??
  "grey_bar_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "fill", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "grey_bar": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ "100% - 1px", "100%" ],
          // 사용할 이미지 경로
          "texture": "textures/ui/white_background",
          // ?? ??
          "keep_ratio": false,
          // 이미지 반복 여부
          "tiled": true,
          // ?? (R,G,B,A)
          "color": "$servers_screenshot",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "(not #this_screenshot_selected)",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "server_screenshot_collection"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "green_bar": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ "100% - 1px", "100%" ],
          // 사용할 이미지 경로
          "texture": "textures/ui/white_background",
          // ?? ??
          "keep_ratio": false,
          // 이미지 반복 여부
          "tiled": true,
          // ?? (R,G,B,A)
          "color": "$servers_current_screenshot",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#this_screenshot_selected",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "server_screenshot_collection"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, "100%" ]
        }
      }
    ]
  },

  // ???/?? ??
  "screenshots_section_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "divider_0@common.horizontal_divider": {}
      },
      {
        // ???/?? ??
        "padding_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      },
      {
        // ???/?? ??
        "screenshots_label": {
          // 글자 표시
          "type": "label",
          // 가로/세로 크기
          "size": [ "100%", 11 ],
          // ?? (R,G,B,A)
          "color": "$body_text_color",
          // 보여줄 글자
          "text": "networkWorld.screenshots"
        }
      },
      {
        // ???/?? ??
        "padding_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      },
      {
        // ???/?? ??
        "screenshots": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ "100%", "56.25%x" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#screenshot_texture",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture"
            },
            {
              // 가져올 값 이름
              "binding_name": "#third_party_server_logo_resource_location",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture_file_system"
            },
            {
              // 가져올 값 이름
              "binding_name": "#third_party_server_logo_resource_location",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture_file_system",
              // 목록 이름
              "binding_collection_name": "server_games_collection"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 4 ]
        }
      },
      {
        // ???/?? ??
        "navigation_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%", 15 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "left_arrow_button@common_buttons.light_content_button": {
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.navigate_screenshots_left",
                // 오버라이드 가능한 변수
                "$button_content": "play.left_arrow_icon",
                // 오버라이드 가능한 변수
                "$focus_override_right": "right_arrow_button",
                // 오버라이드 가능한 변수
                "$focus_override_left": "left_panel",
                // 가로/세로 크기
                "size": [ 15, "100%" ]
              }
            },
            {
              // ???/?? ??
              "padding_0": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 4, "100%" ]
              }
            },
            {
              // ???/?? ??
              "navigation_bar": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "fill", 5 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "grey_bar": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 5 ],
                      // 사용할 이미지 경로
                      "texture": "textures/ui/Black",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "grey_bar_factory_panel": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 가로/세로 크기
                            "size": [ "100% - 1px", 3 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "right_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "right_middle",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 2,
                            // 목록 아이템을 자동으로 생성
                            "factory": {
                              // ?? ??
                              "name": "grey_bar_factory",
                              // ??? ???
                              "control_name": "play.grey_bar_panel"
                            },
                            // 목록 이름
                            "collection_name": "server_screenshot_collection",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#screenshot_collection_length",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#collection_length"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 4, "100%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "right_arrow_button@common_buttons.light_content_button": {
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.navigate_screenshots_right",
                // 오버라이드 가능한 변수
                "$button_content": "play.right_arrow_icon",
                // 오버라이드 가능한 변수
                "$focus_id": "right_arrow_button",
                // 가로/세로 크기
                "size": [ 15, "100%" ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding_3": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      }
    ]
  },

  // ???/?? ??
  "description_text_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 오버라이드 가능한 변수
    "$description_max_size|default": [ "100% - 2px", 40 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "contents_description": {
          // 글자 표시
          "type": "label",
          // 가로/세로 크기
          "size": [ "100% - 2px", "default" ],
          // ?? ?? ?
          "max_size": "$description_max_size",
          // 기준점에서 이동하는 거리
          "offset": [ 2, 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ?? (R,G,B,A)
          "color": "$body_text_color",
          // ??
          "font_type": "smooth",
          // ?? ??
          "enable_profanity_filter": false,
          // 보여줄 글자
          "text": "#description_label",
          // ???/?? ??
          "notify_on_ellipses": [
            "description_read_more_button_panel"
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#description_label"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "description_section_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "divider_0@common.horizontal_divider": {}
      },
      {
        // ???/?? ??
        "padding_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      },
      {
        // ???/?? ??
        "description_label": {
          // 글자 표시
          "type": "label",
          // 가로/세로 크기
          "size": [ "100%", 11 ],
          // ?? (R,G,B,A)
          "color": "$body_text_color",
          // 보여줄 글자
          "text": "networkWorld.description"
        }
      },
      {
        // ???/?? ??
        "padding_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      },
      {
        // ???/?? ??
        "read_more_panel": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/screen_background",
          // ???
          "alpha": 0.6,
          // 가로/세로 크기
          "size": [ "100%", "100%c + 4px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "description_text_small@play.description_text_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100% - 5px", "100%c" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 2 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#description_is_read_more",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "description_text_full@play.description_text_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100% - 5px", "100%c" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 2 ],
                // 오버라이드 가능한 변수
                "$description_max_size": [ "100% - 2px", "default" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#description_is_read_less",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "description_read_more_button_panel@common_buttons.read_button": {
                // 오버라이드 가능한 변수
                "$offset": [ -6, -2.5 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_right",
                // 오버라이드 가능한 변수
                "$single_line_label_text": "store.mashup.readMore",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.description_read_toggle",
                // 오버라이드 가능한 변수
                "$focus_override_left": "left_panel",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#description_is_read_more",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ],
                // 오버라이드 가능한 변수
                "$bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "#using_ellipses",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "description_read_less_button_panel@common_buttons.read_button": {
                // 오버라이드 가능한 변수
                "$offset": [ -6, -2.5 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_right",
                // 오버라이드 가능한 변수
                "$single_line_label_text": "store.mashup.readLess",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.description_read_toggle",
                // 오버라이드 가능한 변수
                "$focus_override_left": "left_panel",
                // 오버라이드 가능한 변수
                "$bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#description_is_read_less",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding_3": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      }
    ]
  },

  // ???/?? ??
  "games_factory_object": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "games_factory_panel": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 사용할 이미지 경로
          "texture": "textures/ui/screen_background",
          // ???
          "alpha": 0.6,
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "top_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // ?? ?? ?
                "min_size": [ "100% - 8px", 30 ],
                // 가로/세로 크기
                "size": [ "100% - 8px", "100%cm" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 2 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "game_image_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // ?? ?? ?
                      "min_size": [ "50%", 30 ],
                      // 가로/세로 크기
                      "size": [ "50%", "100%sm" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "game_image": {
                            // 이미지 표시
                            "type": "image",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#available_game_image",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#texture",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection",
                                // 목록 이름
                                "binding_collection_name": "server_games_collection"
                              },
                              {
                                // 가져올 값 이름
                                "binding_name": "#available_game_image_visible",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#visible",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection",
                                // 목록 이름
                                "binding_collection_name": "server_games_collection"
                              },
                              {
                                // 가져올 값 이름
                                "binding_name": "#third_party_server_logo_resource_location",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#texture_file_system"
                              },
                              {
                                // 가져올 값 이름
                                "binding_name": "#third_party_server_logo_resource_location",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#texture_file_system",
                                // 목록 이름
                                "binding_collection_name": "server_games_collection"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "padding": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 4, "100%sm" ]
                    }
                  },
                  {
                    // ???/?? ??
                    "game_title_panel": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "vertical",
                      // ?? ?? ?
                      "min_size": [ "fill", 30 ],
                      // 가로/세로 크기
                      "size": [ "fill", "100%c" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "game_title": {
                            // 글자 표시
                            "type": "label",
                            // 가로/세로 크기
                            "size": [ "100%", "default" ],
                            // ?? (R,G,B,A)
                            "color": "$body_text_color",
                            // ??
                            "font_type": "smooth",
                            // 보여줄 글자
                            "text": "#available_game_title",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#available_game_title",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection",
                                // 목록 이름
                                "binding_collection_name": "server_games_collection"
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "game_subtitle": {
                            // 글자 표시
                            "type": "label",
                            // 가로/세로 크기
                            "size": [ "100%", "default" ],
                            // ?? (R,G,B,A)
                            "color": "$body_text_color",
                            // ??
                            "font_type": "smooth",
                            // ?? ?? ??
                            "font_scale_factor": 0.8,
                            // 보여줄 글자
                            "text": "#available_game_subtitle",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#available_game_subtitle",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection",
                                // 목록 이름
                                "binding_collection_name": "server_games_collection"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "bottom_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100% - 8px", "100%c + 4px" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "bottom_panel": {
                      // 글자 표시
                      "type": "label",
                      // 가로/세로 크기
                      "size": [ "100%", "default" ],
                      // ?? (R,G,B,A)
                      "color": "$body_text_color",
                      // ??
                      "font_type": "smooth",
                      // ?? ?? ??
                      "font_scale_factor": 0.8,
                      // 보여줄 글자
                      "text": "#available_game_description",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#available_game_description",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "server_games_collection"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      }
    ]
  },

  // ???/?? ??
  "games_section_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "divider_0@common.horizontal_divider": {}
      },
      {
        // ???/?? ??
        "padding_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      },
      {
        // ???/?? ??
        "description_label": {
          // 글자 표시
          "type": "label",
          // 가로/세로 크기
          "size": [ "100%", 11 ],
          // ?? (R,G,B,A)
          "color": "$body_text_color",
          // 보여줄 글자
          "text": "networkWorld.available_games"
        }
      },
      {
        // ???/?? ??
        "padding_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      },
      {
        // ???/?? ??
        "games_factory_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": [ "100% - 2px", "100%c" ],
          // 목록 아이템을 자동으로 생성
          "factory": {
            // ?? ??
            "name": "available_games_factory",
            // ??? ???
            "control_name": "play.games_factory_object"
          },
          // 목록 이름
          "collection_name": "server_games_collection",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#games_collection_length",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#collection_length"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding_3": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      }
    ]
  },

  // ???/?? ??
  "news_text_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 오버라이드 가능한 변수
    "$news_max_size|default": [ "100% - 2px", 40 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "contents_news": {
          // 글자 표시
          "type": "label",
          // 가로/세로 크기
          "size": [ "100% - 2px", "default" ],
          // ?? ?? ?
          "max_size": "$news_max_size",
          // 기준점에서 이동하는 거리
          "offset": [ 2, 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ?? (R,G,B,A)
          "color": "$body_text_color",
          // ??
          "font_type": "smooth",
          // ?? ?? ??
          "font_scale_factor": 0.8,
          // ?? ??
          "enable_profanity_filter": false,
          // 보여줄 글자
          "text": "#news_text",
          // ???/?? ??
          "notify_on_ellipses": [
            "news_read_more_button_panel"
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#news_text"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "news_section_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "divider_0@common.horizontal_divider": {}
      },
      {
        // ???/?? ??
        "padding_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      },
      {
        // ???/?? ??
        "news_label": {
          // 글자 표시
          "type": "label",
          // ?? (R,G,B,A)
          "color": "$body_text_color",
          // 가로/세로 크기
          "size": [ "100%", 11 ],
          // 보여줄 글자
          "text": "networkWorld.news"
        }
      },
      {
        // ???/?? ??
        "padding_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      },
      {
        // ???/?? ??
        "read_more_panel": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/screen_background",
          // ???
          "alpha": 0.6,
          // 가로/세로 크기
          "size": [ "100%", "100%c + 4px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "text_stack_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "vertical",
                // 가로/세로 크기
                "size": [ "100% - 7px", "100%c" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 2 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "news_title_text": {
                      // 글자 표시
                      "type": "label",
                      // 가로/세로 크기
                      "size": [ "100%", 11 ],
                      // ?? (R,G,B,A)
                      "color": "$body_text_color",
                      // ??
                      "font_type": "smooth",
                      // 보여줄 글자
                      "text": "#news_label",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 5,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#news_label"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "divider_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%", 4 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 5,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "divider_0@common.horizontal_divider": {}
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "news_text_small@play.news_text_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%", "100%c" ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#news_is_read_more",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "news_text_full@play.news_text_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%", "100%c" ],
                      // 오버라이드 가능한 변수
                      "$news_max_size": [ "100% - 2px", "default" ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#news_is_read_less",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "news_read_more_button_panel@common_buttons.read_button": {
                // 오버라이드 가능한 변수
                "$offset": [ -6, -2.5 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_right",
                // 오버라이드 가능한 변수
                "$single_line_label_text": "store.mashup.readMore",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.news_read_toggle",
                // 오버라이드 가능한 변수
                "$focus_override_left": "left_panel",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#news_is_read_more",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ],
                // 오버라이드 가능한 변수
                "$bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "#using_ellipses",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "news_read_less_button_panel@common_buttons.read_button": {
                // 오버라이드 가능한 변수
                "$offset": [ -6, -2.5 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_right",
                // 오버라이드 가능한 변수
                "$single_line_label_text": "store.mashup.readLess",
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.news_read_toggle",
                // 오버라이드 가능한 변수
                "$focus_override_left": "left_panel",
                // 오버라이드 가능한 변수
                "$bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#news_is_read_less",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding_3": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      }
    ]
  },


  //---------------------------------------------------------------------------
  // LOCAL WORLD GRID
  //---------------------------------------------------------------------------
  "divider": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White"
  },

  // ???/?? ??
  "blue_diskspace_bar": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ??? ??
    "clip_direction": "left",
    // ?? ??
    "clip_pixelperfect": false,
    // ?? (R,G,B,A)
    "color": "$world_diskspace_editions_fill"
  },

  // ???/?? ??
  "green_diskspace_bar": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ??? ??
    "clip_direction": "left",
    // ?? ??
    "clip_pixelperfect": false,
    // ?? (R,G,B,A)
    "color": "$world_diskspace_bedrock_fill"
  },

  // ???/?? ??
  "empty_diskspace_bar": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$world_diskspace_empty"
  },

  // ???/?? ??
  "legacy_world_content_status_area_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "world_storage_content_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "world_storage_separator@play.divider": {
                // 가로/세로 크기
                "size": [ "100% - 2px", "2px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 1 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // ?? (R,G,B,A)
                "color": "$light_glyph_default_color"
              }
            },
            {
              // ???/?? ??
              "world_storage_information": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 가로/세로 크기
                "size": [ "100% - 10px", "100%c" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "legacy_world_label": {
                      // 글자 표시
                      "type": "label",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // ?? (R,G,B,A)
                      "color": "$dark_button_default_text_color",
                      // 보여줄 글자
                      "text": "playscreen.worldsStorage"
                    }
                  },
                  {
                    // ???/?? ??
                    "padding": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%", 4 ]
                    }
                  },
                  {
                    // ???/?? ??
                    "legacy_world_bar": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 가로/세로 크기
                      "size": [ "100% - 2px", 10 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 1, 1 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "local_diskspace_bar@play.green_diskspace_bar": {
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 3,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#local_worlds_storage_size",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#clip_ratio"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "legacy_diskspace_bar@play.blue_diskspace_bar": {
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 2,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#legacy_worlds_storage_size",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#clip_ratio"
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "empty_diskspace_bar@play.empty_diskspace_bar": {
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1,
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "world_list_text": {
    // 글자 표시
    "type": "label",
    // ?? (R,G,B,A)
    "color": "$dark_button_secondary_default_text_color",
    // ?? ??
    "shadow": false
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "realm_screenshot@play.world_screenshot_base": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "picture": {
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 사용할 이미지 경로
          "texture": "textures/ui/RealmDemoScreen",
          // 가로/세로 크기
          "size": [ "173.91%y", "100% - 2px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 1, 1 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left"
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "local_world_name@play.world_list_text": {
    // 보여줄 글자
    "text": "#local_world_name",
    // ?? ??
    "localize": false,
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#local_world_name",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "local_worlds"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "legacy_world_name@play.world_list_text": {
    // 보여줄 글자
    "text": "#legacy_world_name",
    // ?? ??
    "localize": false,
    // ?? (R,G,B,A)
    "color": "$text_color",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#legacy_world_name",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "legacy_worlds"
      }
    ]
  },


  // local world copy protection indicator
  "world_lock": {
    // 이미지 표시
    "type": "image",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 6,
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_right",
    // 가로/세로 크기
    "size": [ 8, 8 ],
    // 사용할 이미지 경로
    "texture": "textures/ui/lock"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "local_world_game_mode@play.world_list_text": {
    // 보여줄 글자
    "text": "#local_world_game_mode",
    // ?? (R,G,B,A)
    "color": "$secondary_text_color",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#local_world_game_mode",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "local_worlds"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "legacy_world_game_mode@play.world_list_text": {
    // 보여줄 글자
    "text": "#legacy_world_game_mode",
    // ?? (R,G,B,A)
    "color": "$secondary_text_color",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#legacy_world_game_mode",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "legacy_worlds"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "local_world_date@play.world_list_text": {
    // 보여줄 글자
    "text": "#local_world_date",
    // ?? (R,G,B,A)
    "color": "$secondary_text_color",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#local_world_date",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "local_worlds"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "legacy_world_date@play.world_list_text": {
    // 보여줄 글자
    "text": "#legacy_world_date",
    // ?? (R,G,B,A)
    "color": "$secondary_text_color",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#legacy_world_date",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "legacy_worlds"
      },
      {
        // 가져올 값 이름
        "binding_name": "#legacy_world_date_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "legacy_worlds"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "local_world_filesize@play.world_list_text": {
    // 보여줄 글자
    "text": "#local_worldfile_size",
    // ?? (R,G,B,A)
    "color": "$secondary_text_color",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#local_worldfile_size",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "local_worlds"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "legacy_world_filesize@play.world_list_text": {
    // 보여줄 글자
    "text": "#legacy_worldfile_size",
    // ?? (R,G,B,A)
    "color": "$secondary_text_color",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#legacy_worldfile_size",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "legacy_worlds"
      }
    ]
  },

  // ???/?? ??
  "local_world_connected_storage": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "local_and_cloud@play.local_and_cloud_storage": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#local_and_cloud_storage_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "local_worlds"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "local_only@play.local_only_storage": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#local_only_storage_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "local_worlds"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "cloud_only@play.cloud_only_storage": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#cloud_only_storage_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "local_worlds"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "local_world_lock_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "lock@play.world_lock": {
          // 기준점에서 이동하는 거리
          "offset": [ 0, 1 ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#world_lock_visible",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // 목록 이름
        "binding_collection_name": "local_worlds"
      }
    ]
  },

  // ???/?? ??
  "realms_plus_banner": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100% + 4px" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "left_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "left_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "realms_banner@realmsPlus.markdown_background": {
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 오버라이드 가능한 변수
          "$triangle_offset": [ 0, 0 ],
          // 오버라이드 가능한 변수
          "$banner_size": [ "100%c - 4px", "100% - 2px" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 9
        }
      }
    ],
    // 오버라이드 가능한 변수
    "$banner_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "realms_icon@common_store.realms_banner_icon": {}
      },
      {
        // ???/?? ??
        "pad_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 2, "100%" ]
        }
      },
      {
        // ???/?? ??
        "pad_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 5, "100%" ]
        }
      }
    ]
  },

  // ???/?? ??
  "local_world_text_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "text_indent": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100% - 4px", "100% - 4px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 1, 0 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "top_side": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100%", "50%" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "local_world_name@play.local_world_name": {
                      // 가로/세로 크기
                      "size": [ "fill", 10 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "lock_1@play.local_world_lock_panel": {}
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "local_world_date@play.local_world_date": {
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "bottom_side": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_left",
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100%", "50%" ],
                // 기준점에서 이동하는 거리
                "offset": [ -2, 1 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "realms_plus_icon@play.realms_plus_banner": {
                      // 가로/세로 크기
                      "size": [ "100%c", 12 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "local_worlds",
                          // 가져올 값 이름
                          "binding_name": "#realms_chevron_visible",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "pad": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 3, "100%" ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "local_world_game_mode@play.local_world_game_mode": {
                      // 가로/세로 크기
                      "size": [ "fill", 10 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "local_world_connected_storage@play.local_world_connected_storage": {
                      // 가로/세로 크기
                      "size": [ 16, 8 ],
                      // 보이기/숨기기(공간 유지)
                      "visible": false,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "local_world_filesize@play.local_world_filesize": {
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "legacy_world_text_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "text_indent": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100% - 4px", "100% - 4px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 1, 0 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "top_side": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100%", "50%" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "legacy_world_name@play.legacy_world_name": {
                      // 가로/세로 크기
                      "size": [ "fill", 10 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "legacy_world_date@play.legacy_world_date": {
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "bottom_side": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_left",
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100%", "50%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "legacy_world_game_mode@play.legacy_world_game_mode": {
                      // 가로/세로 크기
                      "size": [ "fill", 10 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "legacy_world_filesize@play.legacy_world_filesize": {
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "beta_retail_world_text_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "text_indent": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100% - 6px", "100% - 4px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "top_side": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100%", "50%" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "beta_retail_world_name@play.world_list_text": {
                      // 보여줄 글자
                      "text": "$beta_retail_world_name_binding_name",
                      // 가로/세로 크기
                      "size": [ "fill", 10 ],
                      // ?? (R,G,B,A)
                      "color": "$text_color",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "$beta_retail_collection_name",
                          // 가져올 값 이름
                          "binding_name": "$beta_retail_world_name_binding_name"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "beta_retail_world_date@play.world_list_text": {
                      // 보여줄 글자
                      "text": "$beta_retail_world_date_binding_name",
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // ?? (R,G,B,A)
                      "color": "$secondary_text_color",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "$beta_retail_collection_name",
                          // 가져올 값 이름
                          "binding_name": "$beta_retail_world_date_binding_name"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "bottom_side": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_left",
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100%", "50%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "beta_retail_world_game_mode@play.world_list_text": {
                      // 보여줄 글자
                      "text": "$beta_retail_world_game_mode_binding_name",
                      // 가로/세로 크기
                      "size": [ "fill", 10 ],
                      // ?? (R,G,B,A)
                      "color": "$secondary_text_color",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "$beta_retail_collection_name",
                          // 가져올 값 이름
                          "binding_name": "$beta_retail_world_game_mode_binding_name"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "beta_retail_world_filesize@play.world_list_text": {
                      // 보여줄 글자
                      "text": "$beta_retail_world_filesize_binding_name",
                      // 가로/세로 크기
                      "size": [ "default", 10 ],
                      // ?? (R,G,B,A)
                      "color": "$secondary_text_color",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "$beta_retail_collection_name",
                          // 가져올 값 이름
                          "binding_name": "$beta_retail_world_filesize_binding_name"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "world_content_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$default_state",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/default_indent"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$hover_state",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/world_screenshot_focus_border"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$pressed_state",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/world_screenshot_focus_border"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$locked_state",
        // 오버라이드 가능한 변수
        "$border_texture": "textures/ui/default_indent"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "world_screenshot@play.collection_world_screenshot": {
          // 오버라이드 가능한 변수
          "$collection_binding_name": "$worlds_collection_name",
          // 오버라이드 가능한 변수
          "$image_binding_name": "$world_image_binding_name",
          // 오버라이드 가능한 변수
          "$supports_realmsplus_overlay": "$world_supports_realmsplus_overlay",
          // 오버라이드 가능한 변수
          "$texture_source_binding_name": "$world_texture_source_binding_name"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "world_text_panel@$world_text_panel_control": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "local_world_item_button@common_buttons.dark_content_button": {
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "($local_world_upload)",
        // 오버라이드 가능한 변수
        "$pressed_button_name": "button.local_world_upload"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "(not $local_world_upload)",
        // 오버라이드 가능한 변수
        "$pressed_button_name": "button.menu_start_local_world"
      }
    ],
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_start_local_world",
    // 오버라이드 가능한 변수
    "$worlds_collection_name": "local_worlds",
    // 오버라이드 가능한 변수
    "$world_image_binding_name": "#local_world_image",
    // 오버라이드 가능한 변수
    "$world_supports_realmsplus_overlay": true,
    // 오버라이드 가능한 변수
    "$world_texture_source_binding_name": "#local_world_texture_source",
    // 오버라이드 가능한 변수
    "$world_text_panel_control": "play.local_world_text_panel",
    // 오버라이드 가능한 변수
    "$button_content": "play.world_content_panel",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "local_worlds"
      },
      {
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 가져올 값 이름
        "binding_name": "#world_button_focus_identifier",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#focus_identifier",
        // 목록 이름
        "binding_collection_name": "local_worlds"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "legacy_world_item_button@common_buttons.dark_content_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.convert_legacy_world",
    // 오버라이드 가능한 변수
    "$worlds_collection_name": "legacy_worlds",
    // 오버라이드 가능한 변수
    "$world_image_binding_name": "#legacy_world_image",
    // 오버라이드 가능한 변수
    "$world_supports_realmsplus_overlay": false,
    // 오버라이드 가능한 변수
    "$world_texture_source_binding_name": "#legacy_world_texture_source",
    // 오버라이드 가능한 변수
    "$world_text_panel_control": "play.legacy_world_text_panel",
    // 오버라이드 가능한 변수
    "$button_content": "play.world_content_panel",
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_select",
        // 어떤 동작을 실행할지
        "to_button_id": "$pressed_button_name",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_ok",
        // 어떤 동작을 실행할지
        "to_button_id": "$pressed_button_name",
        // 입력 시점(pressed 등)
        "mapping_type": "focused"
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "legacy_worlds"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "beta_retail_world_item_button@common_buttons.dark_content_button": {
    // 오버라이드 가능한 변수
    "$worlds_collection_name": "$beta_retail_collection_name",
    // 오버라이드 가능한 변수
    "$world_image_binding_name": "$beta_retail_world_image",
    // 오버라이드 가능한 변수
    "$world_supports_realmsplus_overlay": false,
    // 오버라이드 가능한 변수
    "$world_texture_source_binding_name": "$beta_retail_world_texture_source",
    // 오버라이드 가능한 변수
    "$world_text_panel_control": "play.beta_retail_world_text_panel",
    // 오버라이드 가능한 변수
    "$button_content": "play.world_content_panel",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "$beta_retail_collection_name"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "local_world_edit_button@common_buttons.dark_glyph_button": {
    // 가로/세로 크기
    "size": [ "100%y - 1px", "100%" ],
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_local_world_item_edit",
    // 오버라이드 가능한 변수
    "$button_content": "play.edit_icon",
    // 오버라이드 가능한 변수
    "$button_tts_header": "accessibility.play.editWorld",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "local_worlds"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "cloud_upload_button@common_buttons.dark_glyph_button": {
    // 가로/세로 크기
    "size": [ "100%y - 1px", "100%" ],
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.cloud_upload",
    // 오버라이드 가능한 변수
    "$button_content": "play.upload_icon",
    // 오버라이드 가능한 변수
    "$button_tts_header": "accessibility.play.uploadWorld",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "local_worlds"
      }
    ]
  },

  // ???/?? ??
  "cloud_upload_and_edit_world_stack_panel": {
    // 가로/세로 크기
    "size": [ "100%c - 2px", "100%" ],
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "cloud@play.cloud_upload_button": {
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "local_worlds"
            },
            {
              // 가져올 값 이름
              "binding_name": "#cloud_upload_enabled",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "edit@play.local_world_edit_button": {}
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "legacy_world_delete_button@common_buttons.dark_glyph_button": {
    // 가로/세로 크기
    "size": [ "100%y - 1px", "100%" ],
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_legacy_world_item_delete",
    // 오버라이드 가능한 변수
    "$button_content": "play.delete_icon",
    // 오버라이드 가능한 변수
    "$button_tts_header": "accessibility.play.legacyWorldsDelete",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "legacy_worlds"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "legacy_world_migrate_button@common_buttons.dark_glyph_button": {
    // 가로/세로 크기
    "size": [ "100%y - 1px", "100%" ],
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_legacy_world_item_migrate",
    // 오버라이드 가능한 변수
    "$button_content": "play.world_download_icon",
    // 오버라이드 가능한 변수
    "$button_tts_header": "accessibility.play.importWorld",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "legacy_worlds"
      }
    ]
  },

  // ???/?? ??
  "local_world_item": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [ "100%", 29 ],
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 오버라이드 가능한 변수
    "$local_world_edit_button_visible|default": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "header_button_panel@play.header_button_panel": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 가로/세로 크기
          "size": [ "100%", "100% + 1px" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 오버라이드 가능한 변수
          "$primary_header_button": "play.local_world_item_button",
          // 오버라이드 가능한 변수
          "$secondary_header_button": "play.cloud_upload_and_edit_world_stack_panel",
          // 오버라이드 가능한 변수
          "$secondary_visible": "$local_world_edit_button_visible"
        }
      }
    ]
  },

  // ???/?? ??
  "legacy_world_item": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [ "100%", 29 ],
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "header_button_panel_with_delete@play.header_button_panel": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $legacy_worlds_share_storage)",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 가로/세로 크기
          "size": [ "100%", "100% + 1px" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 오버라이드 가능한 변수
          "$primary_header_button": "play.legacy_world_item_button",
          // 오버라이드 가능한 변수
          "$secondary_header_button": "play.legacy_world_delete_button"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "header_button_panel_with_migrate@play.header_button_panel": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $legacy_worlds_supports_migration)",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 가로/세로 크기
          "size": [ "100%", "100% + 1px" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 오버라이드 가능한 변수
          "$primary_header_button": "play.legacy_world_item_button",
          // 오버라이드 가능한 변수
          "$secondary_header_button": "play.legacy_world_migrate_button"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "header_button_panel_no_delete@play.header_single_button_panel": {
          // 완전히 제거(공간도 없음)
          "ignored": "($legacy_worlds_share_storage or $legacy_worlds_supports_migration)",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 가로/세로 크기
          "size": [ "100%", "100% + 1px" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 오버라이드 가능한 변수
          "$primary_header_button": "play.legacy_world_item_button"
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "beta_retail_world_item@play.header_single_button_panel": {
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [ "100%", 30 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 오버라이드 가능한 변수
    "$primary_header_button": "play.beta_retail_world_item_button"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "local_world_item_grid@play.world_item_grid_base": {
    // 오버라이드 가능한 변수
    "$world_item_grid_template|default": "play.local_world_item",
    // ??? ?? ?
    "grid_item_template": "$world_item_grid_template",
    // ??? ?? ?
    "grid_dimension_binding": "#local_world_item_grid_dimension",
    // 목록 이름
    "collection_name": "local_worlds",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#local_world_item_grid_dimension"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "legacy_world_item_grid@play.world_item_grid_base": {
    // ??? ?? ?
    "grid_item_template": "play.legacy_world_item",
    // ??? ?? ?
    "grid_dimension_binding": "#legacy_world_item_grid_dimension",
    // 목록 이름
    "collection_name": "legacy_worlds",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#legacy_world_item_grid_dimension"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "beta_retail_local_world_item_grid@play.world_item_grid_base": {
    // ??? ?? ?
    "grid_item_template": "play.beta_retail_world_item",
    // ??? ?? ?
    "grid_dimension_binding": "#beta_retail_local_world_item_grid_dimension",
    // 목록 이름
    "collection_name": "beta_retail_local_worlds",
    // 오버라이드 가능한 변수
    "$beta_retail_collection_name": "beta_retail_local_worlds",
    // 오버라이드 가능한 변수
    "$beta_retail_world_name_binding_name": "#beta_retail_local_world_name",
    // 오버라이드 가능한 변수
    "$beta_retail_world_date_binding_name": "#beta_retail_local_world_date",
    // 오버라이드 가능한 변수
    "$beta_retail_world_game_mode_binding_name": "#beta_retail_local_world_game_mode",
    // 오버라이드 가능한 변수
    "$beta_retail_world_filesize_binding_name": "#beta_retail_local_world_filesize",
    // 오버라이드 가능한 변수
    "$beta_retail_world_image": "#beta_retail_local_world_image",
    // 오버라이드 가능한 변수
    "$beta_retail_world_texture_source": "#beta_retail_local_world_texture_source",
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.import_beta_retail_local_world",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#beta_retail_local_world_item_grid_dimension"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "beta_retail_legacy_world_item_grid@play.world_item_grid_base": {
    // ??? ?? ?
    "grid_item_template": "play.beta_retail_world_item",
    // ??? ?? ?
    "grid_dimension_binding": "#beta_retail_legacy_world_item_grid_dimension",
    // 목록 이름
    "collection_name": "beta_retail_legacy_worlds",
    // 오버라이드 가능한 변수
    "$beta_retail_collection_name": "beta_retail_legacy_worlds",
    // 오버라이드 가능한 변수
    "$beta_retail_world_name_binding_name": "#beta_retail_legacy_world_name",
    // 오버라이드 가능한 변수
    "$beta_retail_world_date_binding_name": "#beta_retail_legacy_world_date",
    // 오버라이드 가능한 변수
    "$beta_retail_world_game_mode_binding_name": "#beta_retail_legacy_world_game_mode",
    // 오버라이드 가능한 변수
    "$beta_retail_world_filesize_binding_name": "#beta_retail_legacy_world_filesize",
    // 오버라이드 가능한 변수
    "$beta_retail_world_image": "#beta_retail_legacy_world_image",
    // 오버라이드 가능한 변수
    "$beta_retail_world_texture_source": "#beta_retail_legacy_world_texture_source",
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.import_beta_retail_legacy_world",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#beta_retail_legacy_world_item_grid_dimension"
      }
    ]
  },

  //---------------------------------------------------------------------------
  // Buttons
  //---------------------------------------------------------------------------

  // 다른 템플릿을 가져와서 확장(상속)
  "common_button_template@common_buttons.light_glyph_button": {},

  // ???/?? ??
  "common_button_text": {
    // 글자 표시
    "type": "label",
    // ?? (R,G,B,A)
    "color": "$tab_secondary_unchecked_text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // ?? ??
    "shadow": false,
    // 보여줄 글자
    "text": "$common_button_text_text"
  },

  // ???/?? ??
  "add_friend_and_invite_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100%", "100%cm" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "add_friend_button@play.add_friend_button": {
          // 완전히 제거(공간도 없음)
          "ignored": "((not $supports_add_friend) or $nx_os or $is_ps4)",
          // 가로/세로 크기
          "size": [ "fill", 30 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#add_friend_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            },
            {
              // 가져올 값 이름
              "binding_name": "#cross_platform_enabled",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#enabled"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 0 ],
          // 완전히 제거(공간도 없음)
          "ignored": "((not $supports_add_friend) or $nx_os or $is_ps4)"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "join_by_code_button@play.join_by_code_button": {
          // 완전히 제거(공간도 없음)
          "ignored": "$is_editor_mode_enabled",
          // 가로/세로 크기
          "size": [ "fill", 30 ]
        }
      },
      {
        // ???/?? ??
        "padding_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 0 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#realms_notification_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "notification_button_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "13%", 30 ],
          // 보이기/숨기기(공간 유지)
          "visible": "#realms_notification_button_visible",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "notification_button@play.notification_button": {
                // 오버라이드 가능한 변수
                "$button_content": "play.notification_content",
                // 오버라이드 가능한 변수
                "$button_tts_header": "realmsInvitationScreen.shareTitle",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_right"
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#realms_notification_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "add_friend_button@common_buttons.light_text_button": {
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_network_add_friend",
    // 오버라이드 가능한 변수
    "$button_text": "networkWorld.add_friend",
    // 오버라이드 가능한 변수
    "$button_focus_precedence": 10,
    // 오버라이드 가능한 변수
    "$focus_override_up": "close_button"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "join_by_code_button@common_buttons.light_text_button": {
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 오버라이드 가능한 변수
    "$button_text": "networkWorld.joinByCode",
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_network_join_by_code",
    // 오버라이드 가능한 변수
    "$button_focus_precedence": 10,
    // 오버라이드 가능한 변수
    "$focus_override_up": "close_button",
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_select",
        // 어떤 동작을 실행할지
        "to_button_id": "$pressed_button_name",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_ok",
        // 어떤 동작을 실행할지
        "to_button_id": "$pressed_button_name",
        // 입력 시점(pressed 등)
        "mapping_type": "focused"
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#join_by_code_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      },
      {
        // 가져올 값 이름
        "binding_name": "#cross_platform_enabled",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#enabled"
      }
    ]

  },

  // 다른 템플릿을 가져와서 확장(상속)
  "add_server_toggle_button@common_toggles.light_text_toggle": {
    // 보이기/숨기기(공간 유지)
    "visible": "(not $ignore_add_servers)",
    // 가로/세로 크기
    "size": [ "100%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 오버라이드 가능한 변수
    "$button_text": "networkWorld.add_server",

    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "server_navigation_toggle",
    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "add_server_toggle_button",
    // 오버라이드 가능한 변수
    "$toggle_state_binding_name": "#toggle_state",
    // 오버라이드 가능한 변수
    "$toggle_on_hover_binding_name": "none",
    // 오버라이드 가능한 변수
    "$toggle_tab_focus_binding_type": "global",
    // 오버라이드 가능한 변수
    "$toggle_tab_focus_binding_name": "#navigation_tab_focus_precedence",
    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 100,
    // 오버라이드 가능한 변수
    "$focus_override_up": "left_panel",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#add_server_enabled",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#enabled"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "server_toggle_base@common_toggles.dark_image_toggle_collection": {
    // 가로/세로 크기
    "size": [ "100%", "100% - 2px" ],
    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$focus_override_right|default": "right_panel",
    // 오버라이드 가능한 변수
    "$toggle_name": "server_navigation_toggle",
    // 오버라이드 가능한 변수
    "$toggle_grid_collection_name": "$collection_name",
    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": "$toggle_index_binding_name",
    // 오버라이드 가능한 변수
    "$toggle_state_binding_name": "#toggle_state",
    // 오버라이드 가능한 변수
    "$toggle_tab_focus_binding_type": "global",
    // 오버라이드 가능한 변수
    "$toggle_tab_focus_binding_name": "#navigation_tab_focus_precedence",
    // 오버라이드 가능한 변수
    "$toggle_on_hover_binding_type": "global",
    // 오버라이드 가능한 변수
    "$toggle_on_hover_binding_name": "#toggle_on_hover",
    // 오버라이드 가능한 변수
    "$focus_override_right": "right_side",

    // 오버라이드 가능한 변수
    "$button_content": "play.server_button_content_panel",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "$collection_name"
      },
      {
        // 가져올 값 이름
        "binding_name": "#cross_platform_enabled",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#enabled"
      },
      {
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 가져올 값 이름
        "binding_name": "#is_server_info_available_collection",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#enabled",
        // 목록 이름
        "binding_collection_name": "$collection_name"
      },
      {
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 가져올 값 이름
        "binding_name": "$toggle_index_binding_name",
        // 목록 이름
        "binding_collection_name": "$collection_name"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "quick_play_button@common_buttons.light_text_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_quick_play",
    // 오버라이드 가능한 변수
    "$button_text": "menu.quickplay",
    // 포커스 이동용 ID
    "focus_identifier": "quick_play_button",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "create_new_world_button@common_buttons.light_text_button": {
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "($local_world_upload)",
        // 오버라이드 가능한 변수
        "$pressed_button_name": "button.new_world_upload"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "(not $local_world_upload)",
        // 오버라이드 가능한 변수
        "$pressed_button_name": "button.menu_local_world_create"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$is_editor_mode_enabled",
        // 오버라이드 가능한 변수
        "$button_text": "playscreen.editor.create"
      }
    ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 오버라이드 가능한 변수
    "$button_text": "selectWorld.createNew",
    // 오버라이드 가능한 변수
    "$button_focus_precedence": 1,
    // 오버라이드 가능한 변수
    "$create_new_row_focus_override_up|default": "close_button",
    // 오버라이드 가능한 변수
    "$focus_override_up": "$create_new_row_focus_override_up",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // ???/?? ??
  "create_on_realms_button_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%cm" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "create_on_realms_button@settings_common.action_button_dark_text": {
          // 가로/세로 크기
          "size": [ "100%", 29 ],
          // 오버라이드 가능한 변수
          "$button_text": "createWorldScreen.createOnRealms",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.create_on_realms_button",
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/realmsContent",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/realmsContentHover",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/realmsContentPressed",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#create_on_realms_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "import_world_button@play.common_button_template": {
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "($local_world_upload)",
        // 오버라이드 가능한 변수
        "$pressed_button_name": "button.archived_world_upload"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "(not $local_world_upload)",
        // 오버라이드 가능한 변수
        "$pressed_button_name": "button.menu_import_level"
      }
    ],
    // 오버라이드 가능한 변수
    "$button_tts_header": "accessibility.play.importWorld",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 가로/세로 크기
    "size": [ "100%y", "100%" ],
    // 오버라이드 가능한 변수
    "$button_content": "play.import_icon",
    // 오버라이드 가능한 변수
    "$button_size_override": [ "100% + 1px", "100%" ],
    // 오버라이드 가능한 변수
    "$button_background_anchor": "top_right",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 오버라이드 가능한 변수
    "$create_new_row_focus_override_up|default": "close_button",
    // 오버라이드 가능한 변수
    "$focus_override_up": "$create_new_row_focus_override_up",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#worlds_tab_import_button_focus_down_override",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#focus_change_down"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "sync_legacy_worlds_button@common_buttons.light_text_button": {
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_sync_legacy_worlds",
    // 오버라이드 가능한 변수
    "$button_text": "#sync_legacy_button_text",
    // 오버라이드 가능한 변수
    "$button_text_binding_type": "global",

    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#sync_legacy_worlds_button_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      }
    ]
  },

  // ???/?? ??
  "notification_button_text_layout": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 기준점에서 이동하는 거리
    "offset": "$button_offset",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "image1@play.invite_icon": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "(not #inbox_enabled)",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "image2@play.bell_icon": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#inbox_enabled",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "count@start.notification_button_text_panel": {
          // 기준점에서 이동하는 거리
          "offset": [ -0.5, 0 ]
        }
      }
    ]
  },

  // ???/?? ??
  "notification_button_label_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "70%", "100%" ],
    // 기준점에서 이동하는 거리
    "offset": "$button_offset",

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "notification_button_label": {
          // 글자 표시
          "type": "label",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // ?? (R,G,B,A)
          "color": "$text_color",
          // 가로/세로 크기
          "size": [ "100%", 10 ],
          // 보여줄 글자
          "text": "$label_text"
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "notification_content@play.notification_button_text_layout": {},

  // 다른 템플릿을 가져와서 확장(상속)
  "notification_button@common_buttons.light_content_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_invite_notification",
    // 오버라이드 가능한 변수
    "$button_content": "play.notification_content",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 오버라이드 가능한 변수
    "$button_offset|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$focus_override_down": "friends_realms_world_button_0",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#friends_tab_invitation_button_focus_down_override",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#focus_change_down"
      }
    ]
  },

  // ???/?? ??
  "header_button_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "buttons": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100% - 1px", "100%" ],
          // 오버라이드 가능한 변수
          "$secondary_visible|default": true,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "primary_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "fill", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "primary@$primary_header_button": {
                      // 가로/세로 크기
                      "size": [ "100% - 1px", "100%" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "secondary@$secondary_header_button": {
                // 보이기/숨기기(공간 유지)
                "visible": "$secondary_visible",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_right",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "header_button_panel_opt_in": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "buttons": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100% - 1px", "100%" ],
          // 오버라이드 가능한 변수
          "$secondary_visible|default": true,
          // 오버라이드 가능한 변수
          "$ternary_visible|default": true,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "primary_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "fill", "100%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "primary@$primary_header_button": {
                      // 가로/세로 크기
                      "size": [ "100% - 1px", "100%" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "secondary@$secondary_header_button": {
                // 보이기/숨기기(공간 유지)
                "visible": "$secondary_visible",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_right",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "ternary@$ternary_header_button": {
                // 보이기/숨기기(공간 유지)
                "visible": "$ternary_visible",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_right",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "header_single_button_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "buttons": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "primary@$primary_header_button": {
                // 가로/세로 크기
                "size": [ "100% + 1px", "100%" ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "open_account_setting_button_gamecore@common_buttons.light_text_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.open_account_setting_gamecore",
    // 오버라이드 가능한 변수
    "$button_text": "permissions.open.account.help.button.gamecore",
    // 가로/세로 크기
    "size": [ "100%", 30 ],
    // 보이기/숨기기(공간 유지)
    "visible": true,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#open_account_setting_button_gamecore_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ]
  },

  //---------------------------------------------------------------------------
  // Scroll panes
  //---------------------------------------------------------------------------

  "common_scroll_pane": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 가로/세로 크기
    "size": [ "100%-4px", "100%c" ],
    // 기준점에서 이동하는 거리
    "offset": [ 2, 0 ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "worlds_scroll_panel@play.common_scroll_pane": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "worlds_list_stack_panel@play.worlds_stack_panel": {}
      }
    ]
  },
  // ???/?? ??
  "game_tip_item_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100% - 8px", "100%cm + 6px" ],
    // 오버라이드 가능한 변수
    "$game_tip_text|default": "",
    // 오버라이드 가능한 변수
    "$label_text": "$game_tip_text",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "info_bulb": {
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 13,
          // 가로/세로 크기
          "size": [ 15, 19 ],
          // 사용할 이미지 경로
          "texture": "textures/ui/infobulb"
        }
      },
      {
        // ???/?? ??
        "padding_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 2, 0 ]
        }
      },
      {
        // ???/?? ??
        "label_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": [ "fill", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "padding_vertical": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 0, 1 ]
              }
            },
            {
              // ???/?? ??
              "realms_warning_text": {
                // 글자 표시
                "type": "label",
                // 가로/세로 크기
                "size": [ "100%", "default" ],
                // 오버라이드 가능한 변수
                "$label_text|default": "#label_text",
                // 오버라이드 가능한 변수
                "$label_text_binding_type|default": "global",
                // 보여줄 글자
                "text": "$label_text",
                // ?? (R,G,B,A)
                "color": "$body_text_color",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "$label_text",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "$label_text",
                    // 바인딩 종류(변수로 관리되는 경우도 있음)
                    "binding_type": "$label_text_binding_type"
                  }
                ]

              }
            },
            {
              // ???/?? ??
              "padding_vertical_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 0, 1 ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "more_info_button@common_buttons.light_text_form_fitting_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.realms_warning_more_info",
          // 오버라이드 가능한 변수
          "$button_text": "playscreen.realmsWarning.moreinfo"
        }
      }
    ]
  },

  // ???/?? ??
  "realm_warning_tip": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/greyBorder",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [ "100%", "100%cm" ],
    // 오버라이드 가능한 변수
    "$realms_warning_text|default": "#realms_warning_text",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "padding_vertical": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 0, 8 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "info_panel@play.game_tip_item_panel": {
          // 오버라이드 가능한 변수
          "$game_tip_text": "$realms_warning_text",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 4 ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#device_sunsetting",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ]
  },

  // ???/?? ??
  "new_ui_switch_button_options_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 완전히 제거(공간도 없음)
    "ignored": "$education_edition",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [ "50% - 10px", "100%c + 4px" ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#show_new_play_screen_opt_in",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "unlock_template_options_button@settings_common.action_button": {
          // 가로/세로 크기
          "size": [ "100% - 1px", 30 ],
          // 오버라이드 가능한 변수
          "$button_text": "options.newUiPlayScreen.initiate",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.switch_to_new_ui"
        }
      }
    ]
  },

  // ???/?? ??
  "new_ui_servers_switch_button_options_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 완전히 제거(공간도 없음)
    "ignored": "$education_edition",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#show_new_play_screen_servers_opt_in",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "unlock_template_options_button@settings_common.action_button": {
          // 가로/세로 크기
          "size": [ "100% - 1px", 30 ],
          // 오버라이드 가능한 변수
          "$button_text": "options.newUiPlayScreen.initiate",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.switch_to_new_ui_servers"
        }
      },
      {
        // ???/?? ??
        "padding_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      }
    ]
  },

  // ???/?? ??
  "worlds_stack_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "padding_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "play_screen_warning@play.realm_warning_tip": {}
      },
      {
        // ???/?? ??
        "header_button": {
          // we don't support importing or creating a new world for realm upload yet
          "ignored": "$local_world_upload",
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 가로/세로 크기
          "size": [ "100%", "100%c + 4px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "quick_play@play.quick_play_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $education_edition)",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 0.5 to line up with the button panel below
                "size": [ "100% + 0.5px", 30 ],
                // 오버라이드 가능한 변수
                "$focus_override_up": "close_button"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "buttons@play.header_button_panel_opt_in": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 가로/세로 크기
                "size": [ "100%", 30 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 오버라이드 가능한 변수
                "$primary_header_button": "create_new_world_button",
                // 오버라이드 가능한 변수
                "$secondary_header_button": "new_ui_switch_button_options_panel",
                // 오버라이드 가능한 변수
                "$ternary_header_button": "import_world_button",
                // 오버라이드 가능한 변수
                "$ternary_visible": "$world_archive_support"
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "worlds_crossplatform_disabled_panel@play.crossplatform_disabled_panel": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $is_realms_enabled)",
          // 오버라이드 가능한 변수
          "$cross_platform_information_text": "crossPlatformToggle.crossPlatformDisabled.realms"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "worlds_crossplatform_disable_spacer@play.crossplatform_disable_spacer": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $is_realms_enabled)"
        }
      },
      {
        // ???/?? ??
        "realms_panel": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $is_realms_enabled)",
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#personal_realms_grid_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ],
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "(not $pre_release)",
              // 오버라이드 가능한 변수
              "$tts_section_header": "playscreen.realms"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "($pre_release and not $beta_build)",
              // 오버라이드 가능한 변수
              "$tts_section_header": "playscreen.previewRealms"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "($pre_release and $beta_build)",
              // 오버라이드 가능한 변수
              "$tts_section_header": "playscreen.betaRealms"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "realms_label@play.world_list_label_panel": {
                // 완전히 제거(공간도 없음)
                "ignored": "$world_picker_screen",
                // 오버라이드 가능한 변수
                "$label_text": "$tts_section_header",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#realm_label_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "sign_in_to_view_realms_button@play.sign_in_to_view_realms_button": {}
            },
            {
              // ???/?? ??
              "realms_previews_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 30 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#free_preview_realm_button_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "new_offers_icon@common_store.new_offer_icon": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 8,
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, -2 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_right",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_right",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#free_preview_realm_new_button_visible",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "realms_world_item_button@common_buttons.dark_content_button": {
                      // 가로/세로 크기
                      "size": [ "100%", 30 ],
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.free_preview_realm_available",
                      // 오버라이드 가능한 변수
                      "$button_content": "play.realms_trial_content_panel",
                      // 오버라이드 가능한 변수
                      "$button_content_text": "#free_preview_realm_available",
                      // 오버라이드 가능한 변수
                      "$world_details_text": "playscreen.withYourPaidRealms",
                      // 오버라이드 가능한 변수
                      "$text_binding_condition": "once",
                      // 오버라이드 가능한 변수
                      "$world_header_text_binding_type": "global",
                      // 오버라이드 가능한 변수
                      "$world_details_text_binding_type": "none",
                      // 오버라이드 가능한 변수
                      "$focus_id": "free_preview_realm_available_button"
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "create_on_realms_button_panel@play.create_on_realms_button_panel": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "personal_realms@play.realms_world_item_grid": {
                // 완전히 제거(공간도 없음)
                "ignored": "$world_picker_screen",
                // 오버라이드 가능한 변수
                "$grid_name": "#personal_realms_grid_dimension",
                // 오버라이드 가능한 변수
                "$realms_worlds_collection_name": "personal_realms",
                // 오버라이드 가능한 변수
                "$grid_item_layout": "play.realms_world_item"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "placeholder_personal_realms_panel@play.label_background": {
                // 가로/세로 크기
                "size": [ "100%", "100%c - 12px" ],
                "min_size": [ "100%", 39 ], // Grid item size is 29 + 10 for label, grid items overdraw by 1px
                // 완전히 제거(공간도 없음)
                "ignored": "$world_picker_screen",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "placeholder_loading_personal_realms": {
                      // 격자 컨테이너: 칸칸이 배치
                      "type": "grid",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 가로/세로 크기
                      "size": [ "100%", "default" ],
                      // 목록 이름
                      "collection_name": "loading_personal_realms",
                      // ??? ?? ?
                      "grid_item_template": "play.empty_grid",
                      // ??? ?? ?
                      "grid_dimension_binding": "#loading_personal_realms_grid_dimension",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#loading_personal_realms_grid_dimension"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "loading_friends_realms_label@play.loading_label": {
                      // 오버라이드 가능한 변수
                      "$message_binding_name": "#realms_loading_display_message"
                    }
                  },
                  {
                    // ???/?? ??
                    "padding": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%", 4 ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "progress_loading_bars@play.progress_loading_bars": {}
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#loading_personal_realms_grid_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            // This is to emulate the sizing behavior of the Realms grid which overdraws by 1 pixel to create a single stroke border
            {
              // ???/?? ??
              "realms_trial_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 29 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "realms_world_item_button@common_buttons.dark_content_button": {
                      // 가로/세로 크기
                      "size": [ "100%", 30 ],
                      // 완전히 제거(공간도 없음)
                      "ignored": "$world_picker_screen",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.menu_realm_world_trial",
                      // 오버라이드 가능한 변수
                      "$button_content": "play.realms_trial_content_panel",
                      // 오버라이드 가능한 변수
                      "$button_content_text": "#realms_trial_text",
                      // 오버라이드 가능한 변수
                      "$world_details_text": "playscreen.realmsTrialWorld",
                      // 오버라이드 가능한 변수
                      "$text_binding_condition": "once",
                      // 오버라이드 가능한 변수
                      "$world_header_text_binding_type": "global",
                      // 오버라이드 가능한 변수
                      "$world_details_text_binding_type": "none",
                      // 오버라이드 가능한 변수
                      "$focus_id": "realms_trial_button",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#cross_platform_enabled",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#enabled"
                        }
                      ]
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global",
                    // 가져올 값 이름
                    "binding_name": "#realm_trial_button_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "realms_nintendo_first_realm_purchase_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 29 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "realms_world_item_button@common_buttons.dark_content_button": {
                      // 가로/세로 크기
                      "size": [ "100%", 30 ],
                      // 완전히 제거(공간도 없음)
                      "ignored": "$world_picker_screen",
                      // 오버라이드 가능한 변수
                      "$pressed_button_name": "button.menu_realm_nintendo_first_realm_purchase_button",
                      // 오버라이드 가능한 변수
                      "$button_content": "play.realms_trial_content_panel",
                      // 오버라이드 가능한 변수
                      "$button_content_text": "playscreen.realmsCreateFirstWorld",
                      // 오버라이드 가능한 변수
                      "$focus_id": "realms_trial_button"
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global",
                    // 가져올 값 이름
                    "binding_name": "#realm_nintendo_first_realm_purchase_button_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 4 ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "realms_multiplayer_blocked_panel": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $is_realms_enabled)",
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 보이기/숨기기(공간 유지)
          "visible": false,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#multiplayer_blocked_panel_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "text_panel@play.label_content_template": {
                // 오버라이드 가능한 변수
                "$label_content_label": "playscreen.header.realms",
                // 오버라이드 가능한 변수
                "$label_content_content": "play.information_panel",
                // 오버라이드 가능한 변수
                "$information_panel_label_text": "#multiplayer_sessions",
                // 오버라이드 가능한 변수
                "$information_panel_label_text_binding_type": "global",
                // 오버라이드 가능한 변수
                "$information_panel_label_text_binding_condition": "always_when_visible"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "open_uri_button@play.open_account_setting_button": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "open_account_setting_button_gamecore@play.open_account_setting_button_gamecore": {}
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "worlds_label@play.world_list_label_with_color_panel": {
          // 오버라이드 가능한 변수
          "$label_text": "playscreen.worlds",
          // 오버라이드 가능한 변수
          "$square_color": "$world_diskspace_bedrock_fill",
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "($pre_release and not $is_editor_mode_enabled)",
              // 오버라이드 가능한 변수
              "$label_text": "playscreen.beta_worlds"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "$is_editor_mode_enabled",
              // 오버라이드 가능한 변수
              "$label_text": "playscreen.editor.worlds"
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#local_worlds_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "grid@play.local_world_item_grid": {
          // 오버라이드 가능한 변수
          "$tts_section_header": "playscreen.worlds",
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$pre_release",
              // 오버라이드 가능한 변수
              "$tts_section_header": "playscreen.beta_worlds"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "no_local_worlds_label@play.label_content_template": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $local_world_upload)",
          // 오버라이드 가능한 변수
          "$label_content_label": "",
          // 오버라이드 가능한 변수
          "$label_content_content": "play.information_panel",
          // 오버라이드 가능한 변수
          "$information_panel_label_text": "localWorld.no_local_world_label",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#no_local_worlds",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "no_local_worlds_switch_setting@play.no_local_worlds_switch_setting": {}
      },
      {
        // ???/?? ??
        "beta_retail_local_padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 4 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#beta_retail_local_worlds_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "beta_retail_local_worlds_label@play.world_list_label_panel": {
          // 오버라이드 가능한 변수
          "$label_text": "playscreen.worlds",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#beta_retail_local_worlds_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "beta_retail_local_grid@play.beta_retail_local_world_item_grid": {
          // 오버라이드 가능한 변수
          "$tts_section_header": "playscreen.worlds"
        }
      },
      {
        // ???/?? ??
        "loading_legacy_worlds_panel_padding": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $supports_legacy_worlds)",
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 4 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#sync_legacy_worlds_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "legacy_worlds_button": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 완전히 제거(공간도 없음)
          "ignored": "$auto_fetch_legacy_worlds",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "legacy_worlds_label@play.world_list_label_panel": {
                // 오버라이드 가능한 변수
                "$label_text": "playscreen.dontSeeLegacyWorlds",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $supports_legacy_worlds)",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#sync_legacy_worlds_button_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "sync_legacy_worlds_button_panel": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $supports_legacy_worlds)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 가로/세로 크기
                "size": [ "100%", "100%c + 4px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "button@play.sync_legacy_worlds_button": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 가로/세로 크기
                      "size": [ "100%", 30 ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "loading_legacy_worlds_panel@play.label_background": {
          // 가로/세로 크기
          "size": [ "100%", "100%c - 12px" ],
          "min_size": [ "100%", 39 ], // Grid item size is 29 + 10 for label, grid items overdraw by 1px
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "loading_legacy_worlds_label@play.loading_label": {
                // 오버라이드 가능한 변수
                "$message_binding_name": "#legacy_worlds_loading_display_message"
              }
            },
            {
              // ???/?? ??
              "padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 4 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "progress_loading_bars@play.progress_loading_bars": {
                // 오버라이드 가능한 변수
                "$visible_binding_name": "#loading_legacy_worlds_grid_visible"
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#loading_legacy_worlds_grid_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 4 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#legacy_worlds_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "upgrade_legacy_worlds_label@play.world_list_label_with_color_panel": {
          // 오버라이드 가능한 변수
          "$label_text": "playscreen.upgradeLegacyWorlds",
          // 오버라이드 가능한 변수
          "$square_color": "$world_diskspace_editions_fill",
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$pre_release",
              // 오버라이드 가능한 변수
              "$label_text": "playscreen.beta_legacy_worlds"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "($is_preview_app and (not $legacy_worlds_supports_migration))",
              // 오버라이드 가능한 변수
              "$label_text": "playscreen.upgradeRetailWorlds"
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#legacy_worlds_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "legacy_world_item_grid@play.legacy_world_item_grid": {
          // 오버라이드 가능한 변수
          "$tts_section_header": "playscreen.upgradeLegacyWorlds",
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$pre_release",
              // 오버라이드 가능한 변수
              "$tts_section_header": "playscreen.beta_legacy_worlds"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "($is_preview_app and (not $legacy_worlds_supports_migration))",
              // 오버라이드 가능한 변수
              "$label_text": "playscreen.upgradeRetailWorlds"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "beta_retail_legacy_padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 4 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#beta_retail_legacy_worlds_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "beta_retail_legacy_worlds_label@play.world_list_label_panel": {
          // 오버라이드 가능한 변수
          "$label_text": "playscreen.upgradeLegacyWorlds",
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "($is_preview_app and (not $legacy_worlds_supports_migration))",
              // 오버라이드 가능한 변수
              "$label_text": "playscreen.upgradeRetailWorlds"
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#beta_retail_legacy_worlds_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "beta_retail_legacy_grid@play.beta_retail_legacy_world_item_grid": {
          // 오버라이드 가능한 변수
          "$tts_section_header": "playscreen.upgradeLegacyWorlds",
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "($is_preview_app and (not $legacy_worlds_supports_migration))",
              // 오버라이드 가능한 변수
              "$tts_section_header": "playscreen.upgradeRetailWorlds"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pad_hack_panel": {
          // Grid items are actually rendering 1 pixel more than their size
          // this is to avoid double-borders
          // however, this means we now need an extra pixel for the last grid item
          // also add 2 pixels to make it look nice
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 3 ]
        }
      }
    ]
  },

  // ???/?? ??
  "no_local_worlds_switch_setting": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 완전히 제거(공간도 없음)
    "ignored": "$education_edition",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "bg@play.label_background": {
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "no_local_worlds_switch_setting@play.label_content_template": {
                // 가로/세로 크기
                "size": [ "100% - 6px", "100%c + 1px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 2 ],
                // 오버라이드 가능한 변수
                "$label_offset": [ 1, 0 ],
                // 오버라이드 가능한 변수
                "$label_content_label": "localWorld.no_local_worlds_present",
                // 오버라이드 가능한 변수
                "$label_content_content": "play.storage_location_dropdown_panel",
                // 오버라이드 가능한 변수
                "$information_panel_label_text": "localWorld.no_local_worlds_present",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#no_local_world_switch_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "no_local_worlds_get_help@play.label_content_template": {
                // 가로/세로 크기
                "size": [ "100% - 6px", "100%c + 1px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 2 ],
                // 오버라이드 가능한 변수
                "$label_offset": [ 1, 0 ],
                // 오버라이드 가능한 변수
                "$label_content_label": "#no_local_worlds_help_label",
                // 오버라이드 가능한 변수
                "$label_content_label_binding_type": "global",
                // 오버라이드 가능한 변수
                "$label_content_content": "play.no_local_worlds_launch_help",
                // 오버라이드 가능한 변수
                "$information_panel_label_text": "#no_local_worlds_help_label",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#no_local_world_help_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#no_local_worlds_switch_setting_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "no_local_worlds_launch_help@common_buttons.light_text_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.no_local_worlds_launch_help",
    // 오버라이드 가능한 변수
    "$button_text": "#no_local_worlds_launch_help_button_label",
    // 오버라이드 가능한 변수
    "$button_text_binding_type": "global",
    // 가로/세로 크기
    "size": [ "100%", 29 ]
  },

  // ???/?? ??
  "storage_location_dropdown_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "padding1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 4 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "storage_location_dropdown@play.storage_location_dropdown": {
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "storage_location_dropdown@settings_common.option_dropdown": {
    // 오버라이드 가능한 변수
    "$option_label": "options.filelocation.title",
    // 완전히 제거(공간도 없음)
    "ignored": "($is_holographic and $is_reality_mode)",
    // 오버라이드 가능한 변수
    "$dropdown_content": "play.switch_storage_type_content",
    // 오버라이드 가능한 변수
    "$dropdown_area": "no_local_worlds_switch_setting",
    // 오버라이드 가능한 변수
    "$dropdown_name": "switch_storage_type",
    // 오버라이드 가능한 변수
    "$option_enabled_binding_name": "#switch_storage_type_enabled",
    // 오버라이드 가능한 변수
    "$options_dropdown_toggle_label_binding": "#switch_storage_type_toggle_label",
    // 오버라이드 가능한 변수
    "$dropdown_scroll_content_size": [ "100%", "200%" ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "switch_storage_type_content@settings_common.option_radio_dropdown_group": {
    // 오버라이드 가능한 변수
    "$radio_buttons": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "storage_location_option_external@settings_common.radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#storage_location_radio_external",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.filelocation.external"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "storage_location_option_appdata@settings_common.radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#storage_location_radio_package",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.filelocation.appdata"
        }
      }
    ]
  },

  // ???/?? ??
  "bar_animation": {
    // 프레임 애니메이션
    "anim_type": "flip_book",
    // ?? ??
    "initial_uv": [ 0, 0 ],
    // ?? ??
    "frame_count": 10,
    // ?? ??
    "frame_step": 64,
    // ?? ??
    "fps": 10,
    // ?? ??
    "reversible": true,
    // 움직임 곡선
    "easing": "linear"
  },

  // ???/?? ??
  "light_centered_loading_label": {
    // 글자 표시
    "type": "label",
    // 보여줄 글자
    "text": "$label_text",
    // ?? ?? ?
    "max_size": [ "100% - 4px", 20 ],
    // ?? ??
    "shadow": false,
    // ?? (R,G,B,A)
    "color": "$generic_button_text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "$label_text",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      }
    ]
  },

  // ???/?? ??
  "light_loading_label": {
    // 글자 표시
    "type": "label",
    // 보여줄 글자
    "text": "$label_text",
    // ?? ?? ?
    "max_size": [ "100% - 4px", 20 ],
    // ?? ??
    "shadow": false,
    // 기준점에서 이동하는 거리
    "offset": [ 0, 6 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // ?? (R,G,B,A)
    "color": "$dark_button_locked_text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3
  },

  // ???/?? ??
  "loading_label": {
    // 글자 표시
    "type": "label",
    // 보여줄 글자
    "text": "$message_binding_name",
    // ?? ?? ?
    "max_size": [ "100% - 4px", 40 ],
    // ?? ??
    "shadow": false,
    // 기준점에서 이동하는 거리
    "offset": [ 0, 6 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // ?? (R,G,B,A)
    "color": "$dark_button_default_text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3,
    // 오버라이드 가능한 변수
    "$message_binding_name|default": "",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "$message_binding_name",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      }
    ]
  },

  // ???/?? ??
  "progress_loading_bars": {
    // 이미지 표시
    "type": "image",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3,
    // 사용할 이미지 경로
    "texture": "textures/ui/loading_bar",
    // 기준점에서 이동하는 거리
    "offset": [ 0, 18 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 가로/세로 크기
    "size": [ 64, 8 ],
    // ???? ??
    "uv_size": [ 64, 8 ],
    // ???? ?? ??
    "uv": "@play.bar_animation",
    // ?? (R,G,B,A)
    "color": "$dark_button_secondary_default_text_color",
    // 오버라이드 가능한 변수
    "$visible_binding_name|default": "#loading_bars_animation_visible",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "$visible_binding_name",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ]
  },

  // ???/?? ??
  "world_list_label_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 10 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "list_label": {
          // 글자 표시
          "type": "label",
          // ?? (R,G,B,A)
          "color": "$main_header_text_color",
          // 가로/세로 크기
          "size": [ "100%", 10 ],
          // 기준점에서 이동하는 거리
          "offset": [ 1, 0 ],
          // 보여줄 글자
          "text": "$label_text"
        }
      }
    ]
  },

  // ???/?? ??
  "world_list_label_with_color_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100%", 10 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "colored_square_sizer": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "colored_square": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $legacy_worlds_share_storage) and (not $legacy_worlds_supports_migration)",
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/progress_bar_simple",
                // 가로/세로 크기
                "size": [ "100%y", "100% - 4px" ],
                // ?? (R,G,B,A)
                "color": "$square_color"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $legacy_worlds_share_storage) and (not $legacy_worlds_supports_migration)",
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 4, "100%" ]
        }
      },
      {
        // ???/?? ??
        "list_label": {
          // 글자 표시
          "type": "label",
          // ?? (R,G,B,A)
          "color": "$main_header_text_color",
          // 가로/세로 크기
          "size": [ "fill", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": [ 1, 0 ],
          // 오버라이드 가능한 변수
          "$label_text|default": "b",
          // 보여줄 글자
          "text": "$label_text",
          // 오버라이드 가능한 변수
          "$label_binding_type|default": "none",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 바인딩 종류(변수로 관리되는 경우도 있음)
              "binding_type": "$label_binding_type",
              // 가져올 값 이름
              "binding_name": "$label_text",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "$label_text"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "empty_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 0, 0 ]
  },

  // ???/?? ??
  "empty_grid": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 29 ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "lan_servers_scroll_content@play.label_content_template": {
    // 오버라이드 가능한 변수
    "$label_content_label": "networkWorld.lan_label",
    // 오버라이드 가능한 변수
    "$label_content_content": "play.network_world_item_grid",
    // 오버라이드 가능한 변수
    "$network_world_grid_item_template": "play.network_world_item",
    // 오버라이드 가능한 변수
    "$network_world_icon": "play.lan_icon",
    // 오버라이드 가능한 변수
    "$network_world_item_grid_dimension_binding": "#lan_network_world_item_grid_dimension",
    // 오버라이드 가능한 변수
    "$collection_name": "lan_network_worlds",
    // 오버라이드 가능한 변수
    "$tts_section_header": "$label_content_label",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#lan_grid_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "friends_scroll_panel@play.common_scroll_pane": {
    // 오버라이드 가능한 변수
    "$hide_xbox_live_icon": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": [ "100%", "100%c - 1px" ],
          // 오버라이드 가능한 변수
          "$add_friend_visible": true,
          // 오버라이드 가능한 변수
          "$add_friend_not_visible": false,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "padding_0": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 2 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "friends_screen_warning@play.realm_warning_tip": {}
            },
            {
              // ???/?? ??
              "header_button": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 가로/세로 크기
                "size": [ "100%", "100%c + 4px" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "add_friend_and_invite_panel@play.add_friend_and_invite_panel": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 완전히 제거(공간도 없음)
                      "ignored": "$add_friend_not_visible"
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "friends_crossplatform_disabled_panel@play.crossplatform_disabled_panel": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $is_realms_enabled)",
                // 오버라이드 가능한 변수
                "$cross_platform_information_text": "crossPlatformToggle.crossPlatformDisabled.friends"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "friends_crossplatform_disable_spacer@play.crossplatform_disable_spacer": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $is_realms_enabled)"
              }
            },
            {
              // ???/?? ??
              "joinable_realms_panel": {
                // 완전히 제거(공간도 없음)
                "ignored": "$is_editor_mode_enabled",
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // 오버라이드 가능한 변수
                "$tts_section_header": "playscreen.joinableRealms",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#joinable_realms_panel_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "friends_realms_label@play.world_list_label_panel": {
                      // 오버라이드 가능한 변수
                      "$label_text": "$tts_section_header",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#friends_realms_visible",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "sign_in_to_view_realms_button_friends@play.sign_in_to_view_realms_button_friends": {}
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "friends_realms@play.realms_world_item_grid": {
                      // 오버라이드 가능한 변수
                      "$grid_name": "#friend_realms_grid_dimension",
                      // 오버라이드 가능한 변수
                      "$realms_worlds_collection_name": "friends_realms",
                      // 오버라이드 가능한 변수
                      "$grid_item_layout": "play.realms_world_item"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "placeholder_loading_friends_panel@play.label_background": {
                      // 가로/세로 크기
                      "size": [ "100%", "100%c - 12px" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "placeholder_loading_friends_realms": {
                            // 격자 컨테이너: 칸칸이 배치
                            "type": "grid",
                            // 가로/세로 크기
                            "size": [ "100%", "default" ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1,
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_left",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_left",
                            // 목록 이름
                            "collection_name": "loading_friends_realms",
                            // ??? ?? ?
                            "grid_item_template": "play.empty_grid",
                            // ??? ?? ?
                            "grid_dimension_binding": "#loading_friends_realms_grid_dimension",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#loading_friends_realms_grid_dimension"
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "loading_friends_realms_label": {
                            // 글자 표시
                            "type": "label",
                            // ?? ?? ?
                            "max_size": [ "100% - 4px", 40 ],
                            // 보여줄 글자
                            "text": "#realms_loading_display_message",
                            // ?? ??
                            "shadow": false,
                            // 기준점에서 이동하는 거리
                            "offset": [ 0, 6 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "top_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "top_middle",
                            // ?? (R,G,B,A)
                            "color": "$dark_button_default_text_color",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 3,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#realms_loading_display_message",
                                // 게임이 주는 전역 값 연결
                                "binding_type": "global"
                              }
                            ]
                          }
                        },
                        {
                          // ???/?? ??
                          "padding": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size": [ "100%", 4 ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "progress_loading_bars@play.progress_loading_bars": {}
                        }
                      ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#loading_friends_realms_grid_visible",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "get_offline_authcode_message_panel@play.label_background": {
                      // 가로/세로 크기
                      "size": [ "100%", 40 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "content_stack": {
                            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                            "type": "stack_panel",
                            // 쌓는 방향(가로/세로)
                            "orientation": "horizontal",
                            // 가로/세로 크기
                            "size": [ "100%", "100%" ],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // ???/?? ??
                                "message_panel": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ "100% - 15px", "100%" ],
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": 3,
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // ???/?? ??
                                      "message_label": {
                                        // 글자 표시
                                        "type": "label",
                                        // 가로/세로 크기
                                        "size": [ "100%", "default" ],
                                        // ?? ??
                                        "text_alignment": "center",
                                        // 보여줄 글자
                                        "text": "networkWorld.addAsAuthorizedApp",
                                        // ?? ??
                                        "shadow": false,
                                        // ?? (R,G,B,A)
                                        "color": "$store_white_text_color"
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                // ???/?? ??
                                "image_panel": {
                                  // 패널: 다른 부품을 담는 바닥판
                                  "type": "panel",
                                  // 가로/세로 크기
                                  "size": [ "100%c", "100%" ],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    {
                                      // ???/?? ??
                                      "link_image": {
                                        // 이미지 표시
                                        "type": "image",
                                        // 가로/세로 크기
                                        "size": [ 8, 8 ],
                                        // 사용할 이미지 경로
                                        "texture": "textures/ui/external_link"
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "focus_border@common.button": {
                            // 가로/세로 크기
                            "size": [ "100%", "100%sm" ],
                            // ?? ??
                            "default_control": "",
                            // 오버라이드 가능한 변수
                            "$pressed_button_name": "button.get_offline_authcode",
                            // ?? ??
                            "tts_inherit_siblings": true,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "hover@common.focus_border_white": {}
                              },
                              {
                                // 다른 템플릿을 가져와서 확장(상속)
                                "pressed@common.focus_border_white": {}
                              }
                            ]
                          }
                        }
                      ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#get_offline_authcode_message_panel_visible",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "no_realms_grid@play.label_content_template": {
                      // 오버라이드 가능한 변수
                      "$label_content_label": "playscreen.joinableRealms",
                      // 오버라이드 가능한 변수
                      "$label_content_content": "play.information_panel",
                      // 오버라이드 가능한 변수
                      "$information_panel_label_text": "playscreen.noFriendsRealms",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#no_friends_realms_visible",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "padding_1": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "100%", 3 ]
                    }
                  }
                ]
              }
            },
            // Original Friends Grid
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "friends_grid@play.label_content_template": {
                // 오버라이드 가능한 변수
                "$label_content_label": "networkWorld.joinable_friends_label",
                // 오버라이드 가능한 변수
                "$label_content_content": "play.network_world_item_grid",
                // 오버라이드 가능한 변수
                "$network_world_grid_item_template": "play.network_world_item",
                // 오버라이드 가능한 변수
                "$network_world_icon": "play.friends_server_icon",
                // 오버라이드 가능한 변수
                "$hide_network_icon": "$hide_xbox_live_icon",
                // 오버라이드 가능한 변수
                "$network_world_item_grid_dimension_binding": "#friends_network_world_item_grid_dimension",
                // 오버라이드 가능한 변수
                "$collection_name": "friends_network_worlds",
                // 오버라이드 가능한 변수
                "$header_icon_visible": true,
                // 오버라이드 가능한 변수
                "$tts_section_header": "$label_content_label",
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$nx_os",
                    // 오버라이드 가능한 변수
                    "$label_content_label": "networkWorld.joinable_nintendo_friends_label"
                  },
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$is_ps4",
                    // 오버라이드 가능한 변수
                    "$label_content_label": "networkWorld.joinable_berwick_friends_label"
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#friends_grid_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "pad_hack_panel": {
                // Grid items are actually rendering 1 pixel more than their size
                // this is to avoid double-borders
                // however, this means we now need an extra pixel for the last grid item
                // also add 2 pixels to make it look nice
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 3 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#friends_grid_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "no_friends_grid_message@play.label_content_template": {
                // 완전히 제거(공간도 없음)
                "ignored": "$education_edition",
                // 오버라이드 가능한 변수
                "$label_content_label": "networkWorld.joinable_friends_label",
                // 오버라이드 가능한 변수
                "$label_content_content": "play.information_panel",
                // 오버라이드 가능한 변수
                "$information_panel_label_text": "#no_friends_grid_message_text",
                // 오버라이드 가능한 변수
                "$information_panel_label_text_binding_type": "global",
                // 오버라이드 가능한 변수
                "$information_panel_label_text_binding_condition": "always_when_visible",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$label_content_label",
                // 조건에 따라 변수 값을 바꾸기
                "variables": [
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$nx_os",
                    // 오버라이드 가능한 변수
                    "$label_content_label": "networkWorld.joinable_nintendo_friends_label"
                  },
                  {
                    // 이 조건이 맞으면 적용
                    "requires": "$is_ps4",
                    // 오버라이드 가능한 변수
                    "$label_content_label": "networkWorld.joinable_berwick_friends_label"
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#no_friends_grid_message_text"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#no_friends_grid_message_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            // Find Cross-Platform Friends button, only on Switch platform for now
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "switch_find_cross_platform_friend_button@play.add_friend_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $nx_os and not $is_ps4)",
                // 가로/세로 크기
                "size": [ "100%", 30 ],
                // 오버라이드 가능한 변수
                "$button_text": "networkWorld.find_cross_platform_friends",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#add_friend_button_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#cross_platform_enabled",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#enabled"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "add_friend_button_padding": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $nx_os and not $is_ps4)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 0, 2 ]
              }
            },
            // Cross Platform Friends Grid
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "cross_platform_friends_grid@play.label_content_template": {
                // 오버라이드 가능한 변수
                "$label_content_label": "networkWorld.joinable_cross_platform_friends_label",
                // 오버라이드 가능한 변수
                "$label_content_content": "play.network_world_item_grid",
                // 오버라이드 가능한 변수
                "$network_world_grid_item_template": "play.network_world_item",
                // 오버라이드 가능한 변수
                "$network_world_icon": "play.cross_platform_friends_server_icon",
                // 오버라이드 가능한 변수
                "$hide_network_icon": "$hide_xbox_live_icon",
                // 오버라이드 가능한 변수
                "$network_world_item_grid_dimension_binding": "#cross_platform_friends_network_world_item_grid_dimension",
                // 오버라이드 가능한 변수
                "$collection_name": "cross_platform_friends_network_worlds",
                // 오버라이드 가능한 변수
                "$header_icon_visible": true,
                // 완전히 제거(공간도 없음)
                "ignored": "(not $nx_os and not $is_ps4)",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$label_content_label",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#cross_platform_friends_grid_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "no_cross_platform_friends_grid_message@play.label_content_template": {
                // 오버라이드 가능한 변수
                "$label_content_label": "networkWorld.joinable_cross_platform_friends_label",
                // 오버라이드 가능한 변수
                "$label_content_content": "play.information_panel",
                // 오버라이드 가능한 변수
                "$information_panel_label_text": "#no_cross_platform_friends_grid_message_text",
                // 오버라이드 가능한 변수
                "$information_panel_label_text_binding_type": "global",
                // 오버라이드 가능한 변수
                "$information_panel_label_text_binding_condition": "always_when_visible",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $nx_os and not $is_ps4)",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$label_content_label",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#no_cross_platform_friends_grid_message_text"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#no_cross_platform_friends_grid_message_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "general_no_multiplayer_grid_message@play.label_content_template": {
                // 오버라이드 가능한 변수
                "$label_content_label": "networkWorld.joinable_friends_label",
                // 오버라이드 가능한 변수
                "$label_content_content": "play.information_panel",
                // 오버라이드 가능한 변수
                "$information_panel_label_text": "#general_no_multiplayer_grid_message_text",
                // 오버라이드 가능한 변수
                "$information_panel_label_text_binding_type": "global",
                // 오버라이드 가능한 변수
                "$information_panel_label_text_binding_condition": "always_when_visible",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$label_content_label",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#general_no_multiplayer_grid_message_text"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#general_no_multiplayer_grid_message_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "lan_grid@play.lan_servers_scroll_content": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "open_account_setting_button_gamecore@play.open_account_setting_button_gamecore": {}
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "manually_added_servers_scrolling_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 완전히 제거(공간도 없음)
    "ignored": "($ignore_add_servers or $ignore_3rd_party_servers)",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#is_network_available_and_multiplayer_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ],
    // 오버라이드 가능한 변수
    "$tts_section_header": "networkWorld.more_servers",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "padding_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "more_servers_label@common.minecraftTenLabel": {
          // 가로/세로 크기
          "size": [ "default", "default" ],
          // 보여줄 글자
          "text": "thirdPartyWorld.Additional",
          // ?? (R,G,B,A)
          "color": "$dark_button_default_text_color",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#is_additional_server_label_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 2 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "more_servers_grid@play.more_servers_grid": {}
      },
      {
        // ???/?? ??
        "padding_3": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 4 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#servers_grid_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "servers_content_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 오버라이드 가능한 변수
    "$focus_id": "left_panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "new_ui_servers_switch_button_options_panel@play.new_ui_servers_switch_button_options_panel": {}
      },
	  {
        // 다른 템플릿을 가져와서 확장(상속)
        "more_servers_panel@play.manually_added_servers_scrolling_content": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "more_servers_divider@common.horizontal_divider": {}
      },
      {

        // ???/?? ??
        "featured_servers_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 완전히 제거(공간도 없음)
          "ignored": "$ignore_3rd_party_servers",
          // 오버라이드 가능한 변수
          "$third_party_featured_servers": "thirdPartyWorld.Featured",
          // 오버라이드 가능한 변수
          "$focus_id": "featured_servers_panel",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "loading_featured_panel@play.label_background": {
                // 가로/세로 크기
                "size": [ "100%", 40 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "loading_friends_realms_label@play.light_loading_label": {
                      // 오버라이드 가능한 변수
                      "$label_text": "thirdPartyWorld.loadingFeaturedServers"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "loading_featured_servers_panel@play.loading_featured_servers_panel": {}
                  }


                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#loading_servers_progress_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 2 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "featured_servers_label@common.minecraftTenLabel": {
                // 가로/세로 크기
                "size": [ "default", "default" ],
                // 보여줄 글자
                "text": "thirdPartyWorld.Featured",
                // ?? (R,G,B,A)
                "color": "$dark_button_default_text_color"
              }
            },
            {
              // ???/?? ??
              "padding_2": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 2 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "third_party_featured_grid@play.third_party_featured_server_grid": {
                // 오버라이드 가능한 변수
                "$tts_section_header": "$third_party_featured_servers"
              }

            },
            {
              // ???/?? ??
              "padding_3": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 2 ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#featured_servers_visible_and_available",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "server_scroll_panel@play.common_scroll_pane": {
    // 오버라이드 가능한 변수
    "$server_scroll_panel_content|default": "play.servers_content_panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": [ "100%- 3px", "100%c + 1px" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "padding_0": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 3 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "servers_crossplatform_disabled_panel@play.crossplatform_disabled_panel": {
                // 오버라이드 가능한 변수
                "$cross_platform_information_text": "crossPlatformToggle.crossPlatformDisabled.servers"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "no_featured_server_connection@play.information_panel": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $is_ps4)",
                // 오버라이드 가능한 변수
                "$information_label_font": "smooth",
                // 오버라이드 가능한 변수
                "$information_panel_label_text": "#internet_connection_text",
                // 오버라이드 가능한 변수
                "$information_panel_label_text_binding_type": "global",
                // 오버라이드 가능한 변수
                "$information_panel_label_text_binding_condition": "always_when_visible",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "(not #is_network_available)",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "more_servers_blocked_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // 쌓는 방향(가로/세로)
                "orientation": "vertical",
                // 보이기/숨기기(공간 유지)
                "visible": false,
                // 완전히 제거(공간도 없음)
                "ignored": "($ignore_add_servers or $ignore_3rd_party_servers)",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#multiplayer_blocked_panel_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "server_multiplayer_privileges_blocked@play.information_panel": {
                      // 오버라이드 가능한 변수
                      "$information_label_font": "smooth",
                      // 오버라이드 가능한 변수
                      "$information_panel_label_text": "#multiplayer_blocked_text",
                      // 오버라이드 가능한 변수
                      "$information_panel_label_text_binding_type": "global",
                      // 오버라이드 가능한 변수
                      "$information_panel_label_text_binding_condition": "always_when_visible",
                      // 완전히 제거(공간도 없음)
                      "ignored": "($ignore_add_servers or $ignore_3rd_party_servers)"
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "open_uri_button@play.open_account_setting_button": {}
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 3 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "server_content@$server_scroll_panel_content": {}
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "add_server_button@play.add_server_toggle_button": {}
            }
          ]
        }
      }
    ]
  },

  //---------------------------------------------------------------------------
  // Cross Platform panels
  //---------------------------------------------------------------------------

  // 다른 템플릿을 가져와서 확장(상속)
  "crossplatform_disabled_panel@play.dark_label_background": {
    // 가로/세로 크기
    "size": [ "100%", "100%c + 8px" ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "(not #cross_platform_enabled)",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "disable_text": {
          // 글자 표시
          "type": "label",
          // ?? (R,G,B,A)
          "color": "$dark_button_default_text_color",
          // 가로/세로 크기
          "size": [ "100% - 8px", "default" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ?? ??
          "shadow": false,
          // ??
          "font_type": "smooth",
          // 보여줄 글자
          "text": "$cross_platform_information_text"
        }
      }
    ]
  },

  // ???/?? ??
  "crossplatform_disable_spacer": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 5 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "(not #cross_platform_enabled)",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ]
  },

  //---------------------------------------------------------------------------
  // Scroll panels
  //---------------------------------------------------------------------------

  // 다른 템플릿을 가져와서 확장(상속)
  "common_scrolling_panel@common.scrolling_panel": {
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 오버라이드 가능한 변수
    "$scrolling_pane_size": [ "100% - 1px", "100%" ],
    // 오버라이드 가능한 변수
    "$scrolling_content": "$scrolling_content",
    // 오버라이드 가능한 변수
    "$scroll_size": [ 5, "100% - 4px" ],
    // 오버라이드 가능한 변수
    "$show_background": false,
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right"
  },

  //---------------------------------------------------------------------------
  // Scroll content
  //---------------------------------------------------------------------------

  "common_content": {
    // 마우스/커서 따라다니는 패널
    "type": "input_panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ??? ?? ?
    "focus_container": true,
    // ??? ?? ?
    "use_last_focus": true,
    // ??? ?? ?
    "focus_navigation_mode_down": "contained",
    // ??? ?? ?
    "focus_navigation_mode_up": "contained",
    // ??? ?? ?
    "focus_navigation_mode_right": "contained",
    // ??? ?? ?
    "focus_navigation_mode_left": "contained"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_offsets@play.common_scrolling_panel": {
    // 가로/세로 크기
    "size": [ "100% - 4px", "100% - 4px" ],
    // 기준점에서 이동하는 거리
    "offset": [ 2, 2 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "worlds_scroll_content@play.common_content": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "worlds_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "scrolling_panel_sizer": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "fill" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "scrolling_panel@play.scrolling_offsets": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 오버라이드 가능한 변수
                      "$scrolling_content": "play.worlds_scroll_panel"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "scrolling_panel_legacy_storage_sizer": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $legacy_worlds_share_storage) and (not $legacy_worlds_supports_migration)",
                // 가로/세로 크기
                "size": [ "100%", "20%" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "scrolling_panel@play.scrolling_offsets": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 오버라이드 가능한 변수
                      "$scrolling_content": "play.legacy_world_content_status_area_panel"
                    }
                  }
                ]
              }

            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "friends_scroll_content@play.common_content": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "scrolling_panel@play.scrolling_offsets": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 오버라이드 가능한 변수
          "$scrolling_content": "play.friends_scroll_panel"
        }
      }
    ]
  },

  // ???/?? ??
  "show_servers_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100%", "fill" ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "(not #feature_server_message_visible)",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "left_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "50% - 1px", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "scrolling_panel@play.scrolling_offsets": {
                // 가로/세로 크기
                "size": [ "100%", "100% - 4px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 2 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 오버라이드 가능한 변수
                "$scrolling_content": "play.server_scroll_panel"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "divider_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 3, "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "main_divider": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ 3, "100% - 4px" ],
                // 이미지 반복 여부
                "tiled": "y",
                // 사용할 이미지 경로
                "texture": "textures/ui/HowToPlayDivider",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "right_panel@play.server_content_area": {}
      }
    ]
  },


  // 다른 템플릿을 가져와서 확장(상속)
  "server_scroll_content@play.common_content": {
    // 가로/세로 크기
    "size": [ "100% - 4px", "100% - 4px" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "severs_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "offset_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100% - 4px", "100%cm" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "servers_sunsetting_warning@play.realm_warning_tip": {
                      // 가로/세로 크기
                      "size": [ "100% - 2px", "100%cm - 2px" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 2, 2 ]
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#device_sunsetting",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "show_servers_panel@play.show_servers_panel": {}
            }
          ]
        }
      },
      {
        // ???/?? ??
        "feature_server_message_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": [ "100% - 10px", "100%c" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 2 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#feature_server_message_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "featured_servers_label@common.minecraftTenLabel": {
                // 가로/세로 크기
                "size": [ "default", "default" ],
                // 보여줄 글자
                "text": "thirdPartyWorld.Featured",
                // ?? (R,G,B,A)
                "color": "$dark_button_default_text_color"
              }
            },
            {
              // ???/?? ??
              "pad": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", 2 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "feature_server_message_panel@play.dark_label_background": {
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "label_panel_layout": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ "97%", "100%c + 8px" ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "label": {
                            // 글자 표시
                            "type": "label",
                            // 오버라이드 가능한 변수
                            "$information_label_font|default": "default",
                            // ??
                            "font_type": "smooth",
                            // ?? (R,G,B,A)
                            "color": "$dark_button_default_text_color",
                            // 가로/세로 크기
                            "size": [ "100%", "default" ],
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1,
                            // ?? ??
                            "shadow": false,
                            // 보여줄 글자
                            "text": "#feature_server_message_text",
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#feature_server_message_text"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "open_account_setting_button_gamecore@play.open_account_setting_button_gamecore": {}
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "server_content_area": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "50% - 4px", "100%" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 오버라이드 가능한 변수
    "$focus_id": "right_side",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#is_network_available_and_multiplayer_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "third_party_scrolling_panel@play.scrolling_offsets": {
          // 가로/세로 크기
          "size": [ "100%", "100% - 4px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 2 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 오버라이드 가능한 변수
          "$scrolling_content": "play.third_party_server_info_panel",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#is_third_party_server_selected",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "additional_server_scrolling_panel@play.scrolling_offsets": {
          // 가로/세로 크기
          "size": [ "100%", "100% - 4px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 2 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 오버라이드 가능한 변수
          "$scrolling_content": "play.additional_server_info_panel",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#is_additional_server_selected",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "add_server_pane@play.add_server_info_panel": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#add_server_info_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },

  //---------------------------------------------------------------------------
  // Toggle tab buttons
  //---------------------------------------------------------------------------

  "tab_front": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/TabTopFront"
  },

  // ???/?? ??
  "tab_front_middle": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/TabTopFront"
  },

  // ???/?? ??
  "tab_back": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/TabTopBack"
  },

  // ???/?? ??
  "X_tab_back": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/XTab"
  },

  // ???/?? ??
  "tab_text_stack_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [ "fill", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "padding@common.empty_panel": {
          // 가로/세로 크기
          "size": [ "100%", 1 ]
        }
      },
      {
        // ???/?? ??
        "text_section": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "text@play.common_button_text": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 보여줄 글자
                "text": "$tab_text_name",
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 기준점에서 이동하는 거리
                "offset": [ -1, 0 ],
                // ?? (R,G,B,A)
                "color": "$text_color"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "count_section": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%c" ],
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$is_checked_state",
              // 오버라이드 가능한 변수
              "$count_background_image": "textures/ui/numberBGFront",
              // 오버라이드 가능한 변수
              "$count_text_color": "$secondary_text_color"
            },
            {
              // 이 조건이 맞으면 적용
              "requires": "($is_hover_state or not $is_checked_state)",
              // 오버라이드 가능한 변수
              "$count_background_image": "textures/ui/numberBGBack",
              // 오버라이드 가능한 변수
              "$count_text_color": "$text_color"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "count_background_image": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "$count_background_image",
                // 가로/세로 크기
                "size": [ "100%c + 3px", "100%c" ],
                // 기준점에서 이동하는 거리
                "offset": [ -1, -1 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_right",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "count@common_button_text": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 기준점에서 이동하는 거리
                      "offset": [ 1, 1 ],
                      // 보여줄 글자
                      "text": "$count_text_name",
                      // ?? (R,G,B,A)
                      "color": "$count_text_color",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "$count_text_name"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "common_navigation_tab_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%-3px", "100% - 4px" ],
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "padding_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 2, "100%" ]
        }
      },
      {
        // ???/?? ??
        "icon_section": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "icon@$tab_icon": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "padding_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 2, "100%" ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "count_text@play.tab_text_stack_panel": {}
      }
    ]
  },

  // ???/?? ??
  "friends_navigation_tab_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100%-3px", "100% - 4px" ],

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 2, "100%" ]
        }
      },
      {
        // ???/?? ??
        "icon_section": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$visibility_binding_override_name",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "icon@$tab_icon": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 기준점에서 이동하는 거리
                "offset": "@play.anim_icon_wait_B"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "icon_section_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$visibility_binding_override_name",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "icon@$tab_icon_2": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 기준점에서 이동하는 거리
                "offset": "@play.anim_icon_wait_A"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "icon_section_nobounce": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$visibility_binding_override_name_nobounce",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "icon@$tab_icon_nobounce": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 기준점에서 이동하는 거리
                "offset": [ 0, -3 ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "icon_section_nobounce_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$visibility_binding_override_name_nobounce",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "icon@$tab_icon_nobounce_2": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 기준점에서 이동하는 거리
                "offset": [ -5, 2 ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "icon_section_notification": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$visibility_binding_override_name_notification",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "icon1@play.invite_icon": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 기준점에서 이동하는 거리
                "offset": [ -0.5, -1 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "(not #inbox_enabled)",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "icon2@play.bell_icon": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 기준점에서 이동하는 거리
                "offset": [ -0.5, -1 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#inbox_enabled",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "count_text@play.tab_text_stack_panel": {}
      }
    ]
  },

  //---------------------------------------------------------------------------
  // Main navigation tabs
  //---------------------------------------------------------------------------

  // 다른 템플릿을 가져와서 확장(상속)
  "top_tab@common_tabs.tab_top": {
    // 오버라이드 가능한 변수
    "$toggle_tts_enabled_binding_type": "global",
    // 오버라이드 가능한 변수
    "$radio_toggle_group": true,
    // 오버라이드 가능한 변수
    "$toggle_name": "navigation_tab",
    // 오버라이드 가능한 변수
    "$toggle_group_default_selected": "$default_tab",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 오버라이드 가능한 변수
    "$toggle_tts_type_priority": 1001,
    // 오버라이드 가능한 변수
    "$toggle_tts_toggle_on_text": "",
    // 오버라이드 가능한 변수
    "$toggle_tts_toggle_off_text": "",
    // 오버라이드 가능한 변수
    "$toggle_tts_index_priority": 1002
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "world_navigation_tab@play.top_tab": {
    // 오버라이드 가능한 변수
    "$is_left_most_tab": true,
    // 오버라이드 가능한 변수
    "$tab_view_binding_name": "world_navigation_tab_toggle",
    // 오버라이드 가능한 변수
    "$tab_icon": "worlds_icon",
    // 오버라이드 가능한 변수
    "$count_text_name": "#world_item_count",
    // 오버라이드 가능한 변수
    "$tab_text_name": "selectWorld.tab.worlds",
    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 0,
    // 오버라이드 가능한 변수
    "$tab_content": "play.common_navigation_tab_content",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$is_editor_mode_enabled",
        // 오버라이드 가능한 변수
        "$tab_text_name": "playscreen.editor.worlds"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "friends_navigation_tab@play.top_tab": {
    // 오버라이드 가능한 변수
    "$tab_view_binding_name": "friends_navigation_tab_toggle",
    // 오버라이드 가능한 변수
    "$tab_icon": "friends_icon_2",
    // 오버라이드 가능한 변수
    "$tab_icon_2": "friends_icon_1",
    // 오버라이드 가능한 변수
    "$tab_icon_nobounce": "friends_icon_2",
    // 오버라이드 가능한 변수
    "$tab_icon_nobounce_2": "friends_icon_1",
    // 오버라이드 가능한 변수
    "$visibility_binding_override_name": "#friends_tab_show_bouncing",
    // 오버라이드 가능한 변수
    "$visibility_binding_override_name_nobounce": "#friends_tab_show_not_bouncing",
    // 오버라이드 가능한 변수
    "$visibility_binding_override_name_notification": "#friends_tab_show_invites",
    // 오버라이드 가능한 변수
    "$count_text_name": "#friend_world_item_count",
    // 오버라이드 가능한 변수
    "$tab_text_name": "selectWorld.tab.friends",
    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 1,
    // 오버라이드 가능한 변수
    "$tab_content": "play.friends_navigation_tab_content"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "server_navigation_tab@play.top_tab": {
    // 오버라이드 가능한 변수
    "$tab_view_binding_name": "server_navigation_tab_toggle",
    // 오버라이드 가능한 변수
    "$tab_icon": "server_tab_icon",
    // 오버라이드 가능한 변수
    "$count_text_name": "#server_world_item_count",
    // 오버라이드 가능한 변수
    "$tab_text_name": "selectWorld.tab.thirdParty",
    // 오버라이드 가능한 변수
    "$toggle_group_forced_index": 2,
    // 오버라이드 가능한 변수
    "$tab_content": "play.common_navigation_tab_content"
  },

  // ???/?? ??
  "close_navigation_tab": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@play.X_tab_back": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "x_image@common.light_close_button": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 기준점에서 이동하는 거리
          "offset": [ 0, -1 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 포커스 이동용 ID
          "focus_identifier": "close_button",
          // 왼쪽으로 이동할 대상
          "focus_change_left": "FOCUS_OVERRIDE_STOP",
          // 위로 이동할 대상
          "focus_change_up": "FOCUS_OVERRIDE_STOP",
          // 오른쪽으로 이동할 대상
          "focus_change_right": "FOCUS_OVERRIDE_STOP",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "(not #exit_button_visible)",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      }
    ]
  },

  //---------------------------------------------------------------------------
  // Content tabs panel
  //---------------------------------------------------------------------------

  "common_tab_content_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background@common.common_panel": {
          // 오버라이드 가능한 변수
          "$dialog_background": "dialog_background_hollow_4",
          // 오버라이드 가능한 변수
          "$show_close_button": false
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "content@$scroll_tab_content": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // magic offset to make the scroll clipping perfect
          "size": [ "100%-12px", "100%-12px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 6, 6 ],
          // ?? ??
          "ttsSectionContainer": true
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "$visible_bind_toggle_source_control",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "worlds_tab_content_panel@play.common_tab_content_panel": {
    // 오버라이드 가능한 변수
    "$visible_bind_toggle_source_control": "world_navigation_tab_toggle",
    // 오버라이드 가능한 변수
    "$scroll_tab_content": "play.worlds_scroll_content"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "friends_tab_content_panel@play.common_tab_content_panel": {
    // 오버라이드 가능한 변수
    "$visible_bind_toggle_source_control": "friends_navigation_tab_toggle",
    // 오버라이드 가능한 변수
    "$scroll_tab_content": "play.friends_scroll_content"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "server_tab_content_panel@play.common_tab_content_panel": {
    // 오버라이드 가능한 변수
    "$visible_bind_toggle_source_control": "server_navigation_tab_toggle",
    // 오버라이드 가능한 변수
    "$scroll_tab_content": "play.server_scroll_content"
  },

  //---------------------------------------------------------------------------
  // Content layout panels
  //---------------------------------------------------------------------------

  "common_tab_content_panel_type": {
    // 마우스/커서 따라다니는 패널
    "type": "input_panel",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 가로/세로 크기
    "size": [ "100%", "100%-26px" ],
    // ?? ??
    "ttsSectionContainer": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "edu_tab_content_panel_layout@play.common_tab_content_panel_type": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "worlds_tab_content@play.worlds_tab_content_panel": {} },
      { "friends_tab_content@play.friends_tab_content_panel": {} },
      { "server_tab_content_panel@play.server_tab_content_panel": {} }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "trial_tab_content_panel_layout@play.common_tab_content_panel_type": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "worlds_tab_content@play.worlds_tab_content_panel": {} }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "default_tab_content_panel_layout@play.common_tab_content_panel_type": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "worlds_tab_content@play.worlds_tab_content_panel": {} },
      { "friends_tab_content@play.friends_tab_content_panel": {} },
      { "server_tab_content_panel@play.server_tab_content_panel": {} }
    ]
  },

  //---------------------------------------------------------------------------
  // Tabs layout panels
  //---------------------------------------------------------------------------

  "tab_navigation_panel_layout": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 가로/세로 크기
    "size": [ "100%", 30 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "navigation_tabs": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "fill", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "content@$navigation_tab": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "close_navigation_tab": {
          // 가로/세로 크기
          "size": [ "100%y", "100%" ],
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 오버라이드 가능한 변수
          "$end_tab_control|default": "play.close_navigation_tab",
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$is_editor_mode_enabled",
              // 오버라이드 가능한 변수
              "$end_tab_control": "play.editor_settings_menu_button"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "close_button@$end_tab_control": {} }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "common_tab_navigation_panel_layout": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [ "100% + 2px", "100%" ],
    // ?? ??
    "ttsSectionContainer": true
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "edu_tab_navigation_panel_layout@play.common_tab_navigation_panel_layout": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "world_navigation_tab@play.world_navigation_tab": {
          // 가로/세로 크기
          "size": [ "33%", "100%" ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "friends_navigation_tab@play.friends_navigation_tab": {
          // 가로/세로 크기
          "size": [ "33%", "100%" ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "server_navigation_tab@play.server_navigation_tab": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "trial_tab_navigation_panel_layout@play.common_tab_navigation_panel_layout": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "world_navigation_tab@play.world_navigation_tab": {
          // 가로/세로 크기
          "size": [ "100%", "100%" ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "default_tab_navigation_panel_layout@play.common_tab_navigation_panel_layout": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "world_navigation_tab@play.world_navigation_tab": {
          // 가로/세로 크기
          "size": [ "33%", "100%" ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "friends_navigation_tab@play.friends_navigation_tab": {
          // 가로/세로 크기
          "size": [ "33%", "100%" ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "server_navigation_tab@play.server_navigation_tab": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ]
        }
      }
    ]
  },

  //---------------------------------------------------------------------------
  // Trial, EDU and Default
  //---------------------------------------------------------------------------

  "common_play_screen_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": "$play_screen_size"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "play_screen_panel@play.common_play_screen_panel": {
    // If in edu quickplay is above create new so adjust focus override accordingly
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$education_edition",
        // 오버라이드 가능한 변수
        "$create_new_row_focus_override_up": "quick_play_button"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "tab_navigation_panel@play.tab_navigation_panel_layout": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "tab_content_panel@$tab_content_panel": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "gamepad_helper_left_bumper@common.gamepad_helper_left_bumper": {
          // 기준점에서 이동하는 거리
          "offset": [ -1, 0 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 오버라이드 가능한 변수
          "$hide_description": true,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#bumper_tooltips_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "gamepad_helper_right_bumper@common.gamepad_helper_right_bumper": {
          // 기준점에서 이동하는 거리
          "offset": [ 1, 0 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 오버라이드 가능한 변수
          "$hide_description": true,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#bumper_tooltips_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "keyboard_helper_left_bracket@common.keyboard_left_trigger": {
          // 기준점에서 이동하는 거리
          "offset": [ -1, 0 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 오버라이드 가능한 변수
          "$hide_description": true,
          // 오버라이드 가능한 변수
          "$text_color": [ 1, 1, 1 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "keyboard_helper_right_bracket@common.keyboard_right_trigger": {
          // 기준점에서 이동하는 거리
          "offset": [ 1, 0 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 오버라이드 가능한 변수
          "$hide_description": true,
          // 오버라이드 가능한 변수
          "$text_color": [ 1, 1, 1 ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "default_play_screen_panel@play.play_screen_panel": {
    // 오버라이드 가능한 변수
    "$navigation_tab": "play.default_tab_navigation_panel_layout",
    // 오버라이드 가능한 변수
    "$tab_content_panel": "play.default_tab_content_panel_layout"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "trial_play_screen_panel@play.play_screen_panel": {
    // 오버라이드 가능한 변수
    "$navigation_tab": "play.trial_tab_navigation_panel_layout",
    // 오버라이드 가능한 변수
    "$tab_content_panel": "play.trial_tab_content_panel_layout"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "edu_play_screen_panel@play.play_screen_panel": {
    // 오버라이드 가능한 변수
    "$navigation_tab": "play.edu_tab_navigation_panel_layout",
    // 오버라이드 가능한 변수
    "$tab_content_panel": "play.edu_tab_content_panel_layout"
  },

  //---------------------------------------------------------------------------
  // Screen
  //---------------------------------------------------------------------------

  // 다른 템플릿을 가져와서 확장(상속)
  "play_screen@common.base_screen": {
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_cancel",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_exit",
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_tab_left",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_tab_left",
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "scope": "view"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_tab_right",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_tab_right",
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "scope": "view"
      }
    ],
    // 오버라이드 가능한 변수
    "$screen_content": "play.play_screen_content",
    // 오버라이드 가능한 변수
    "$world_picker_screen": false
  },

  // ???/?? ??
  "play_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "(not $education_edition and not $is_editor_mode_enabled and not $is_editor_playtest_roundtrip)",
        // 오버라이드 가능한 변수
        "$main_panel": "play.default_play_screen_panel"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "($education_edition and not $is_editor_mode_enabled and not $is_editor_playtest_roundtrip)",
        // 오버라이드 가능한 변수
        "$main_panel": "play.edu_play_screen_panel"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "((not $education_edition and $is_editor_mode_enabled) or $is_editor_playtest_roundtrip)",
        // 오버라이드 가능한 변수
        "$main_panel": "play.editor_play_screen_panel"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "main_control@$main_panel": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "editor_text_panel@play.editor_text_panel": {
          // 보이기/숨기기(공간 유지)
          "visible": "$is_editor_mode_enabled"
        }
      },
      {
        // ???/?? ??
        "popup_dialog_factory": {
          // 리스트를 자동으로 생성하는 공장
          "type": "factory",
          // 팩토리 템플릿 매핑
          "control_ids": {
            // ?? ??
            "join_by_code": "@play.popup_dialog_join_by_code",
            // ?? ??
            "high_ping_warning": "@play.popup_dialog_high_ping"
          }
        }
      }
    ]
  },

  //--------------------------------------------------------------------------------
  // Join By Code Dialog Popup
  //--------------------------------------------------------------------------------
  "popup_dialog_join_by_code@popup_dialog.modal_input_panel": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "join_by_code_popup_background@play.join_by_code_popup_background": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 0
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "join_by_code_popup_content@play.join_by_code_popup_content": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "gamepad_helpers@common.gamepad_helpers_a_and_b": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 0, "31px" ]
        }
      }
    ]
  },

  // ???/?? ??
  "join_by_code_popup_background": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/control",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // ???
    "alpha": 0.6,
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left"
  },

  // ???/?? ??
  "join_by_code_popup_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 200, 90 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "popup_dialog_bg@realms_common.popup_dialog_bg": {} },
      {
        // ???/?? ??
        "popup_stack_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "join_by_code_popup_dialog_header@play.join_by_code_popup_dialog_header": {} },
            {
              // ???/?? ??
              "spacing_1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "1px" ]
              }
            },
            { "join_by_code_popup_dialog_upper_body@play.join_by_code_popup_dialog_upper_body": {} },
            {
              // ???/?? ??
              "spacing_2": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "10px" ]
              }
            },
            { "join_by_code_popup_dialog_lower_body@play.join_by_code_popup_dialog_lower_body": {} }
          ]
        }

      }
    ]
  },

  // ???/?? ??
  "join_by_code_popup_dialog_header": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "21%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "join_by_code_popup_header_text@play.join_by_code_popup_header_text": {} },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "close_button@common.close_button": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 기준점에서 이동하는 거리
          "offset": [ -1, 2 ],
          // 입력 키/버튼과 동작 연결
          "button_mappings": [
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_select",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_network_join_by_code_close",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_ok",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_network_join_by_code_close",
              // 입력 시점(pressed 등)
              "mapping_type": "focused"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "join_by_code_popup_header_text": {
    // 글자 표시
    "type": "label",
    // 보여줄 글자
    "text": "networkWorld.joinByCode",
    // ?? ?? ?
    "font_size": "normal",
    // ?? (R,G,B,A)
    "color": "$title_text_color",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center"
  },

  // ???/?? ??
  "join_by_code_popup_dialog_upper_body": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "22%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "margin1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "3px", 0 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "join_by_code_popup_code_text_field@play.join_by_code_popup_code_text_field": {
          // 가로/세로 크기
          "size": [ "65%", "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left"
        }
      },
      {
        // ???/?? ??
        "spacing": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 1, 0 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "join_by_code_popup_join_button@play.join_by_code_popup_join_button": {
          // 가로/세로 크기
          "size": [ "fill", "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left"
        }
      },
      {
        // ???/?? ??
        "margin2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "3px", 0 ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "join_by_code_popup_code_text_field@common.text_edit_box": {
    // 오버라이드 가능한 변수
    "$text_box_name": "#join_by_code_text_edit",
    // ?? ?? ?
    "max_length": 15,
    // 오버라이드 가능한 변수
    "$place_holder_text": "networkWorld.realmsHashPlaceholder"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "join_by_code_popup_join_button@common_buttons.light_text_button": {
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 오버라이드 가능한 변수
    "$button_text": "networkWorld.join",
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_network_join_by_code_popup_join",
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_select",
        // 어떤 동작을 실행할지
        "to_button_id": "$pressed_button_name",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_ok",
        // 어떤 동작을 실행할지
        "to_button_id": "$pressed_button_name",
        // 입력 시점(pressed 등)
        "mapping_type": "focused"
      }
    ]

  },

  // ???/?? ??
  "join_by_code_popup_help_text": {
    // 글자 표시
    "type": "label",
    // 가로/세로 크기
    "size": [ "95%", "100%" ],
    // ?? ??
    "shadow": false,
    // 보여줄 글자
    "text": "networkWold.joinByCodeHelpText",
    // ?? (R,G,B,A)
    "color": "$light_glyph_default_color",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // ?? ??
    "text_alignment": "center"
  },

  // ???/?? ??
  "lower_body_default_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "info_text@play.join_by_code_popup_help_text": {
        }
      }
    ]
  },

  // ???/?? ??
  "join_by_code_popup_dialog_lower_body": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "fill" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "default@play.lower_body_default_content": {}
      }
    ]
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "open_account_setting_button@common_buttons.hyperlink_button": {
    // 오버라이드 가능한 변수
    "$button_text": "permissions.open.account.help.button",
    // 이 컨트롤 안에서 쓰는 임시 저장소
    "property_bag": {
      // ???/??? ?
      "#hyperlink": "https://aka.ms/MCMultiplayerHelp"
    },
    // 가로/세로 크기
    "size": [ "100%", 30 ],
    // 완전히 제거(공간도 없음)
    "ignored": "$is_holographic",
    // 보이기/숨기기(공간 유지)
    "visible": false,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#open_uri_button_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ]
  },

  //---------------------------------------------------------------------------
  // High Ping Warning Dialog Popup
  //---------------------------------------------------------------------------

  // 다른 템플릿을 가져와서 확장(상속)
  "popup_dialog_high_ping@popup_dialog.modal_input_panel": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "high_ping_popup_background@play.join_by_code_popup_background": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 0
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "high_ping_popup_content@play.popup_two_buttons": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "gamepad_helpers@common.gamepad_helpers_a_and_b": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 0, "31px" ]
        }
      }
    ]
  },

  // ???/?? ??
  "popup_two_buttons": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 250, 170 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 오버라이드 가능한 변수
    "$text_name": "networkWorld.highPingWarning.title",
    // 오버라이드 가능한 변수
    "$child_control": "play.high_ping_popup_content_stack_panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "common_panel@common.common_panel": { "$dialog_background": "dialog_background_hollow_2" }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "title_label@common_dialogs.title_label": {}
      },
      {
        // ???/?? ??
        "panel_indent": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // Fit to the hole in dialog_background_hollow_1 exactly
          "size": [ "100% - 16px", "100% - 99px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 35 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "inside_header_panel@$child_control": {} }
          ]
        }
      },
      {
        // ???/?? ??
        "button_panel": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100% - 14px", 30 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 0, -7 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "left_button_panel@play.high_ping_popup_join_button": {
                // 가로/세로 크기
                "size": [ "fill", "100%" ]
              }
            },
            {
              // ???/?? ??
              "pad": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 6, "100%" ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "right_button_panel@play.high_ping_popup_cancel_button": {
                // 가로/세로 크기
                "size": [ "fill", "100%" ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "high_ping_popup_content_stack_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [ "100% - 8px", "100%c" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 5,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "pad_0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 10 ]
        }
      },
      {
        // ???/?? ??
        "ping_images_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "ping_images_stack_panel": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": [ "100%c", 20 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "medium_connection": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ 20, "100%" ],
                      // 사용할 이미지 경로
                      "texture": "textures/ui/Ping_Yellow_Dark"
                    }
                  },
                  {
                    // ???/?? ??
                    "pad": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 30, "100%" ]
                    }
                  },
                  {
                    // ???/?? ??
                    "low_connection": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ 20, "100%" ],
                      // 사용할 이미지 경로
                      "texture": "textures/ui/Ping_Red_Dark"
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "pad_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 10 ]
        }
      },
      {
        // ???/?? ??
        "text_line_1": {
          // 글자 표시
          "type": "label",
          // 가로/세로 크기
          "size": [ "100%", "default" ],
          // ??
          "font_type": "smooth",
          // 보여줄 글자
          "text": "networkWorld.highPingWarning.line1",
          // ?? (R,G,B,A)
          "color": "$main_header_text_color"
        }
      },
      {
        // ???/?? ??
        "pad_2": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 10 ]
        }
      },
      {
        // ???/?? ??
        "text_line_2": {
          // 글자 표시
          "type": "label",
          // 가로/세로 크기
          "size": [ "100%", "default" ],
          // ??
          "font_type": "smooth",
          // 보여줄 글자
          "text": "networkWorld.highPingWarning.line2",
          // ?? (R,G,B,A)
          "color": "$main_header_text_color"
        }
      },
      {
        // ???/?? ??
        "pad_3": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", 10 ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "high_ping_popup_join_button@common_buttons.light_text_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.join_server_anyway",
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_select",
        // 어떤 동작을 실행할지
        "to_button_id": "$pressed_button_name",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_ok",
        // 어떤 동작을 실행할지
        "to_button_id": "$pressed_button_name",
        // 입력 시점(pressed 등)
        "mapping_type": "focused"
      }
    ],
    // 오버라이드 가능한 변수
    "$button_text": "networkWorld.join"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "high_ping_popup_cancel_button@common_buttons.light_text_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.cancel_join_server",
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_select",
        // 어떤 동작을 실행할지
        "to_button_id": "$pressed_button_name",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_ok",
        // 어떤 동작을 실행할지
        "to_button_id": "$pressed_button_name",
        // 입력 시점(pressed 등)
        "mapping_type": "focused"
      }
    ],
    // 오버라이드 가능한 변수
    "$button_text": "gui.cancel"
  },

  //---------------------------------------------------------------------------
  // Editor Mode
  //---------------------------------------------------------------------------

  "copyright": {
    // 글자 표시
    "type": "label",
    // ?? (R,G,B,A)
    "color": "$main_header_text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 보여줄 글자
    "text": "menu.copyright",
    // 가로/세로 크기
    "size": [ "default", 10 ],
    // ?? ?? ?
    "max_size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left"
  },

  // ???/?? ??
  "development_version": {
    // 글자 표시
    "type": "label",
    // ?? (R,G,B,A)
    "color": "$main_header_text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 보여줄 글자
    "text": "#development_version",
    // 가로/세로 크기
    "size": [ "default", 10 ],
    // ?? ?? ?
    "max_size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#development_version"
      }
    ]
  },

  // ???/?? ??
  "version": {
    // 글자 표시
    "type": "label",
    // ?? (R,G,B,A)
    "color": "$main_header_text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 보여줄 글자
    "text": "#version",
    // 가로/세로 크기
    "size": [ "default", 10 ],
    // ?? ?? ?
    "max_size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#version"
      }
    ]
  },

  // ???/?? ??
  "editor_text_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%-2px", 10 ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, -1 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "copyright@play.copyright": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "development_version@play.development_version": {
          // 완전히 제거(공간도 없음)
          "ignored": "$is_publish"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "version@play.version": {}
      }
    ]
  },

  // ???/?? ??
  "editor_settings_image_content": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 14, 14 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 사용할 이미지 경로
    "texture": "textures/ui/icon_setting",
    // ?? (R,G,B,A)
    "color": "white"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "editor_settings_menu_button@common_buttons.light_content_button": {
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 기준점에서 이동하는 거리
    "offset": [ 0, -3 ],
    // 가로/세로 크기
    "size": [ 24, 24 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.editor_settings",
    // 오버라이드 가능한 변수
    "$button_content": "play.editor_settings_image_content",
    // 포커스 이동용 ID
    "focus_identifier": "close_button",
    // 왼쪽으로 이동할 대상
    "focus_change_left": "FOCUS_OVERRIDE_STOP",
    // 위로 이동할 대상
    "focus_change_up": "FOCUS_OVERRIDE_STOP",
    // 오른쪽으로 이동할 대상
    "focus_change_right": "FOCUS_OVERRIDE_STOP"
  },

  // ???/?? ??
  "editor_server_content_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 오버라이드 가능한 변수
    "$focus_id": "left_panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "more_servers_panel@play.manually_added_servers_scrolling_content": {}
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "editor_tab_content_panel_layout@play.common_tab_content_panel_type": {
    // 오버라이드 가능한 변수
    "$server_scroll_panel_content": "play.editor_server_content_panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "worlds_tab_content@play.worlds_tab_content_panel": {} },
      { "friends_tab_content@play.friends_tab_content_panel": {} },
      { "server_tab_content_panel@play.server_tab_content_panel": {} }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "editor_play_screen_panel@play.play_screen_panel": {
    // 오버라이드 가능한 변수
    "$navigation_tab": "play.default_tab_navigation_panel_layout",
    // 오버라이드 가능한 변수
    "$tab_content_panel": "play.editor_tab_content_panel_layout",
    // 보이기/숨기기(공간 유지)
    "visible": "(not $is_editor_playtest_roundtrip)"
  }
}

scoreboards.json 기본 UI 모음 1 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: scoreboards.json
// 분류: 기본 UI 모음 1 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// 이 파일의 이름표(다른 파일에서 @로 참조)
	"namespace": "scoreboard",
	// ???/?? ??
	"scoreboard_sidebar_score": {
		// 글자 표시
		"type": "label",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 2,
		// 가로/세로 크기
		"size": [
			"default",
			10
		],
		// 보여줄 글자
		"text": "#player_score_sidebar",
		"shadow": true, //Add shadow so its still readable - Alien
		// 기준점(어디에서 시작할지)
		"anchor_from": "top_right",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "top_right",
		// ??? ?? ?
		"locked_alpha": 1.0,
		// ?? (R,G,B,A)
		"color": "$player_score_color",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#player_score_sidebar",
				// 목록 데이터를 반복 연결
				"binding_type": "collection",
				// 목록 이름
				"binding_collection_name": "scoreboard_scores"
			}
		]
	},
	// ???/?? ??
	"scoreboard_sidebar_player": {
		// 글자 표시
		"type": "label",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 2,
		// 보여줄 글자
		"text": "#player_name_sidebar",
		"shadow": true, //Add shadow so its still readable - Alien
		// 가로/세로 크기
		"size": [
			"default",
			10
		],
		// ??? ?? ?
		"locked_alpha": 1.0,
		// ?? (R,G,B,A)
		"color": "$player_name_color",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#player_name_sidebar",
				// 목록 데이터를 반복 연결
				"binding_type": "collection",
				// 목록 이름
				"binding_collection_name": "scoreboard_players"
			}
		]
	},
	// ???/?? ??
	"scoreboard_sidebar": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": [
			"100%cm",
			"100%c"
		],
		// 기준점(어디에서 시작할지)
		"anchor_from": "right_middle",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "right_middle",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"main": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/Black",
					"alpha": 0.0, //Makes background completly transparent - Alien
					// 가로/세로 크기
					"size": [
						"100%cm",
						"100%c"
					],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"displayed_objective": {
								// 글자 표시
								"type": "label",
								// 가로/세로 크기
								"size": [
									"default",
									10
								],
								// 보여줄 글자
								"text": "#objective_sidebar_name",
								"shadow": true, //Add shadow so its still readable - Alien
								// 기준점(어디에서 시작할지)
								"anchor_from": "top_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "top_middle",
								// ?? ??
								"text_alignment": "center",
								// ?? ??
								"inherit_max_sibling_width": true,
								// ??? ?? ?
								"locked_alpha": 1.0,
								// 겹치는 순서(숫자 클수록 위)
								"layer": 1,
								// ?? (R,G,B,A)
								"color": "$objective_title_color",
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#objective_sidebar_name",
										// 게임이 주는 전역 값 연결
										"binding_type": "global"
									}
								]
							}
						},
						{
							// ???/?? ??
							"lists": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 기준점(어디에서 시작할지)
								"anchor_from": "top_left",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "top_left",
								// 기준점에서 이동하는 거리
								"offset": [
									0,
									10
								],
								// 가로/세로 크기
								"size": [
									"100%c",
									"100%cm"
								],
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"players": {
											// 줄맞춤 컨테이너: 가로/세로로 자동 배치
											"type": "stack_panel",
											// 기준점(어디에서 시작할지)
											"anchor_from": "top_left",
											// 붙일 위치(어디에 놓을지)
											"anchor_to": "top_left",
											// 가로/세로 크기
											"size": [
												"100%cm",
												"100%c"
											],
											// 쌓는 방향(가로/세로)
											"orientation": "vertical",
											// 목록 이름
											"collection_name": "scoreboard_players",
											// 목록 아이템을 자동으로 생성
											"factory": {
												// ?? ??
												"name": "player_list_factory",
												// ??? ???
												"control_name": "scoreboard.scoreboard_sidebar_player"
											},
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 가져올 값 이름
													"binding_name": "#scoreboard_sidebar_size",
													// 게임이 주는 전역 값 연결
													"binding_type": "global",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#collection_length"
												}
											]
										}
									},
									{
										// ???/?? ??
										"scores": {
											// 줄맞춤 컨테이너: 가로/세로로 자동 배치
											"type": "stack_panel",
											// 기준점(어디에서 시작할지)
											"anchor_from": "top_right",
											// 붙일 위치(어디에 놓을지)
											"anchor_to": "top_right",
											// 가로/세로 크기
											"size": [
												"100%cm",
												"100%c"
											],
											// 쌓는 방향(가로/세로)
											"orientation": "vertical",
											// ?? ??
											"use_child_anchors": true,
											// 목록 이름
											"collection_name": "scoreboard_scores",
											// 목록 아이템을 자동으로 생성
											"factory": {
												// ?? ??
												"name": "player_score_factory",
												// ??? ???
												"control_name": "scoreboard.scoreboard_sidebar_score"
											},
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 가져올 값 이름
													"binding_name": "#scoreboard_sidebar_size",
													// 게임이 주는 전역 값 연결
													"binding_type": "global",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#collection_length"
												}
											]
										}
									}
								]
							}
						}
					]
				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#scoreboard_sidebar_visible",
				// 게임이 주는 전역 값 연결
				"binding_type": "global",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible"
			}
		]
	}
}

settings_screen.json 기본 UI 모음 1 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: settings_screen.json
// 분류: 기본 UI 모음 1 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
/********************************************************
+*   (c) Mojang. All rights reserved                       *
+*   (c) Microsoft. All rights reserved.                   *
+*********************************************************/

{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "settings",


  // ???/?? ??
  "selector_stack_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 오버라이드 가능한 변수
    "$default_selector_toggle_index": 0,
    // 오버라이드 가능한 변수
    "$spatialPatternsPadding": [ 0, 0 ], //Removes padding bellow accessability button - Alien
    // ?? ??
    "ttsSectionContainer": true,
    // 이 안에 들어가는 부품 목록
    "controls": [

      {
        // ???/?? ??
        "spacer_0": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $include_world_section)",
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 2, 2 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "accessibility_button@general_section.accessibility_button": {
          // 오버라이드 가능한 변수
          "$toggle_group_forced_index": "$accessibility_forced_index",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $include_controls_and_settings_sections)"
        }
      },
      {
        // ???/?? ??
        "spacer_1": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $settings_spatial_pattern_fix_enabled)",
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$spatialPatternsPadding"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "how_to_play_button@general_section.how_to_play_button": {
          // 오버라이드 가능한 변수
          "$toggle_group_forced_index": "$how_to_play_index",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $include_controls_and_settings_sections)"
        }
      },

      // the list of selection toggle buttons, add yours here...
      {
        // ???/?? ??
        "spacer_01": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$spatialPatternsPadding",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $include_world_section or not $settings_spatial_pattern_fix_enabled)"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "world_selector_pane@world_section.selector_pane_content": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $include_world_section)"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "realm_selector_pane@realms_settings.selector_panel": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $include_realm_section)",
          // 오버라이드 가능한 변수
          "$world_toggle_index": "$world_forced_index",
          // 오버라이드 가능한 변수
          "$members_toggle_index": "$members_forced_index",
          // 오버라이드 가능한 변수
          "$subscription_toggle_index": "$subscription_forced_index",
          // 오버라이드 가능한 변수
          "$backup_toggle_index": "$backup_forced_index",
          // 오버라이드 가능한 변수
          "$dev_options_toggle_index": "$dev_options_forced_index",
          // 오버라이드 가능한 변수
          "$invite_links_toggle_index": "$invite_links_forced_index"
        }
      },
      {
        // ???/?? ??
        "controls_and_settings_selector_pane": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $include_controls_and_settings_sections)",
          // 오버라이드 가능한 변수
          "$controls_section_header": "options.group.input",
          // 오버라이드 가능한 변수
          "$social_section_header": "options.social",
          // 오버라이드 가능한 변수
          "$general_section_header": "stat.generalButton",
          // 오버라이드 가능한 변수
          "$debug_section_header": "options.debug",
          // 오버라이드 가능한 변수
          "$spatialPatternsPadding": [ 0, 0 ], //Removes padding between buttons - Alien
          // 오버라이드 가능한 변수
          "$settingsHeaderSpace": [2, 8], //extra bit of padding on for headings to seperate sections - Alien
          // 이 안에 들어가는 부품 목록
          "controls": [

            // Controls Section //
            {
              // ???/?? ??
              "spacer_1": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$settingsHeaderSpace"
              }
            },
            {
              // ???/?? ??
              "spacer_1_no_spatial": {
                // 완전히 제거(공간도 없음)
                "ignored": "$settings_spatial_pattern_fix_enabled",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 2, 8 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "selector_group_label_1@settings_common.selector_group_label": {
                // 보여줄 글자
                "text": "$controls_section_header"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "keyboard_and_mouse_button@controls_section.keyboard_and_mouse_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $keyboard_and_mouse_supported)",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$keyboard_and_mouse_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$controls_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_01": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $gamepad_supported or $nx_os or not $settings_spatial_pattern_fix_enabled)"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "controller_button@controls_section.controller_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $gamepad_supported or $nx_os)",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$controller_and_switch_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$controls_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_02": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $gamepad_supported or not $nx_os or not $settings_spatial_pattern_fix_enabled)"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "switch_controller_button@controls_section.controller_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $gamepad_supported or not $nx_os)",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$controller_and_switch_forced_index",
                // 오버라이드 가능한 변수
                "$glyph_texture": "textures/ui/controller_glyph_switch",
                // 오버라이드 가능한 변수
                "$glyph_color_texture": "textures/ui/controller_glyph_color_switch",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$controls_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_03": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $touch_supported or $nx_os or not $settings_spatial_pattern_fix_enabled)"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "touch_button@controls_section.touch_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $touch_supported or $nx_os)",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$touch_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$controls_section_header"
              }
            },
            // Social Section //
            {
              // ???/?? ??
              "spacer_04": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding",
                // 완전히 제거(공간도 없음)
                "ignored": "($education_edition or not $party_settings_enabled or not $settings_spatial_pattern_fix_enabled)"
              }
            },
            {
              // ???/?? ??
              "spacer_04_no_spatial": {
                // 완전히 제거(공간도 없음)
                "ignored": "($education_edition or not $party_settings_enabled or $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 2, 8 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "selector_group_label_2@settings_common.selector_group_label": {
                // 보여줄 글자
                "text": "$social_section_header",
                // 완전히 제거(공간도 없음)
                "ignored": "($education_edition or not $party_settings_enabled)"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "party_button@social_section.party_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "($education_edition or not $party_settings_enabled)",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$party_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$social_section_header"
              }
            },
            // General Section //
            {
              // ???/?? ??
              "spacer_05": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$settingsHeaderSpace",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $settings_spatial_pattern_fix_enabled)"
              }
            },
            {
              // ???/?? ??
              "spacer_05_no_spatial": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 2, 8 ],
                // 완전히 제거(공간도 없음)
                "ignored": "$settings_spatial_pattern_fix_enabled"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "selector_group_label_3@settings_common.selector_group_label": {
                // 보여줄 글자
                "text": "$general_section_header"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "general_button@general_section.general_button": {
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$general_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_06": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $settings_spatial_pattern_fix_enabled)"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "video_button@general_section.video_button": {
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$video_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_07": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $settings_spatial_pattern_fix_enabled)"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "sound_button@general_section.sound_button": {
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$sound_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_08": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $settings_spatial_pattern_fix_enabled)"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "account_button@general_section.account_button": {
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$account_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_09": {
                // 완전히 제거(공간도 없음)
                "ignored": "($is_editor_mode_enabled or not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#should_show_subscription_tab",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "view_subscriptions_button@general_section.view_subscriptions_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "$is_editor_mode_enabled",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$view_subscriptions_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#should_show_subscription_tab",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "spacer_10": {
                // 완전히 제거(공간도 없음)
                "ignored": "($ignore_global_resources_section or not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "global_texture_pack_button@general_section.global_texture_pack_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "$ignore_global_resources_section",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$global_texture_pack_forced_index",
                // 보이기/숨기기(공간 유지)
                "visible": "($is_global_texture_packs_visible)",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_11": {
                // 완전히 제거(공간도 없음)
                "ignored": "($ignore_storage_section or not $is_pregame or not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "storage_management_button@general_section.storage_management_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "$ignore_storage_section",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$storage_management_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_12": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $education_edition or not $edu_save_to_cloud_on or not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "edu_cloud_storage_button@general_section.edu_cloud_storage_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $education_edition or not $edu_save_to_cloud_on)",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$edu_cloud_storage_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_13": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $is_pregame or not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "language_button@general_section.language_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $is_pregame)",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$language_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_14": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "creator_button@general_section.creator_button": {
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$creator_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_15": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $show_preview_button or not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "preview_button@general_section.preview_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $show_preview_button)",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$preview_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },

            // Debug Section //
            {
              // ???/?? ??
              "spacer_4": {
                // 완전히 제거(공간도 없음)
                "ignored": "($is_publish or not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding"
              }
            },
            {
              // ???/?? ??
              "spacer_4_no_spatial": {
                // 완전히 제거(공간도 없음)
                "ignored": "($is_publish or $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 2, 8 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "selector_group_label_4@settings_common.selector_group_label": {
                // 완전히 제거(공간도 없음)
                "ignored": "$is_publish",
                // 보여줄 글자
                "text": "$debug_section_header"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "debug_button@general_section.debug_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $debug_settings)",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$debug_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_16": {
                // 완전히 제거(공간도 없음)
                "ignored": "($is_publish or not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "discovery_debug_button@general_section.discovery_debug_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "$is_publish",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$discovery_debug_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_17": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $debug_settings or not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "ui_debug_button@general_section.ui_debug_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $debug_settings)",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$ui_debug_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_18": {
                // 완전히 제거(공간도 없음)
                "ignored": "((not $debug_settings) or $creator_build or (not $education_edition) or not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "edu_debug_button@general_section.edu_debug_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "((not $debug_settings) or $creator_build or (not $education_edition))",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$edu_debug_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_19": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $debug_settings or not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "marketplace_debug_button@general_section.marketplace_debug_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $debug_settings)",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$marketplace_debug_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_20": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $debug_settings or not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "gatherings_debug_button@general_section.gatherings_debug_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $debug_settings)",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$gatherings_debug_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_21": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $debug_settings or not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "flighting_debug_button@general_section.flighting_debug_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $debug_settings)",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$flighting_debug_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_22": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $debug_settings or not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "realms_debug_button@general_section.realms_debug_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $debug_settings)",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$realms_debug_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            },
            {
              // ???/?? ??
              "spacer_23": {
                // 완전히 제거(공간도 없음)
                "ignored": "($is_publish or $test_infrastructure_disabled or not $settings_spatial_pattern_fix_enabled)",
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": "$spatialPatternsPadding"
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "automation_button@general_section.automation_button": {
                // 완전히 제거(공간도 없음)
                "ignored": "($is_publish or $test_infrastructure_disabled)",
                // 오버라이드 가능한 변수
                "$toggle_group_forced_index": "$automation_forced_index",
                // 오버라이드 가능한 변수
                "$tts_section_header": "$general_section_header"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "spacer_24": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $include_world_section and (not $include_realm_section or not $realms_pack_feature_enabled) or not $settings_spatial_pattern_fix_enabled)",
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$spatialPatternsPadding"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "addons_selector_panel@world_section.addons_selector_panel": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $include_world_section and (not $include_realm_section or not $realms_pack_feature_enabled))",
          // 오버라이드 가능한 변수
          "$level_texture_pack_toggle_index": "$level_texture_pack_index",
          // 오버라이드 가능한 변수
          "$addon_toggle_index": "$addon_index"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "realms_invite_link_settings_pane@realms_invite_link_settings.selector_panel": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $include_realm_invite_link_settings)",
          // 오버라이드 가능한 변수
          "$general_toggle_index": "$general_invite_link_forced_index",
          // 오버라이드 가능한 변수
          "$advanced_toggle_index": "$advanced_invite_link_forced_index"
        }
      }
    ]
  }

}

stonecutter_screen.json 기본 UI 모음 1 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: stonecutter_screen.json
// 분류: 기본 UI 모음 1 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// 이 파일의 이름표(다른 파일에서 @로 참조)
	"namespace": "stonecutter",
	// 다른 템플릿을 가져와서 확장(상속)
	"toolbar_panel@common.root_panel": {
		// 가로/세로 크기
		"size": [
			"100%c",
			20
		],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"toolbar_background@stonecutter.toolbar_background": {
					// 가로/세로 크기
					"size": [
						"100%cm",
						"100% + 8px"
					],
					// 기준점에서 이동하는 거리
					"offset": [
						0,
						-3
					],
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_right",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_right",
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"toolbar_stack_panel": {
								// 줄맞춤 컨테이너: 가로/세로로 자동 배치
								"type": "stack_panel",
								// 쌓는 방향(가로/세로)
								"orientation": "horizontal",
								// 가로/세로 크기
								"size": [
									"default",
									"100% - 8px"
								],
								// 기준점에서 이동하는 거리
								"offset": [
									0,
									3
								],
								// 기준점(어디에서 시작할지)
								"anchor_from": "top_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "top_middle",
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"padding_1": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												6,
												0
											]
										}
									},
									//{
									//  "help_button_panel": {
									//    "type": "panel",
									//    "size": [ "100%c", "100%" ],
									//    "controls": [
									//      { "help_button@stonecutter.help_button": {} }
									//    ]
									//  }
									//},
									//Hide how to play button - Alien
									{
										// ???/?? ??
										"close_button_panel": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												"100%c",
												"100%"
											],
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 가져올 값 이름
													"binding_name": "#close_button_visible",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#visible"
												}
											],
											// 이 안에 들어가는 부품 목록
											"controls": [
												{
													// 다른 템플릿을 가져와서 확장(상속)
													"close_button@common.light_close_button": {
														// 가로/세로 크기
														"size": [
															"100%cm",
															"100%cm"
														],
														// 기준점에서 이동하는 거리
														"offset": [
															0,
															0
														],
														// 기준점(어디에서 시작할지)
														"anchor_from": "center",
														// 붙일 위치(어디에 놓을지)
														"anchor_to": "center"
													}
												}
											]
										}
									},
									{
										// ???/?? ??
										"padding_2": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												6,
												0
											]
										}
									}
								]
							}
						}
					]
				}
			}
		]
	}
}

trade_2_screen.json 기본 UI 모음 1 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: trade_2_screen.json
// 분류: 기본 UI 모음 1 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// 이 파일의 이름표(다른 파일에서 @로 참조)
	"namespace": "trade2",
	// ???/?? ??
	"top_half_stack_panel": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 쌓는 방향(가로/세로)
		"orientation": "horizontal",
		// 가로/세로 크기
		"size": [
			"100%c",
			"100%cm"
		],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"item_slots_holder": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": [
						"100%c",
						"100%c"
					],
					// ?? ??
					"inherit_max_sibling_height": true,
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"item_slots_stack_panel@trade2.item_slots_stack_panel": {}
						}
					]
				}
			},
			{
				// ???/?? ??
				"padding_1": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": [
						1,
						0
					]
				}
			},
			{
				// ???/?? ??
				"trade_button_holder": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": [
						"100%c",
						0
					],
					// ?? ??
					"inherit_max_sibling_height": true,
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"trade_button@trade2.trade_button": {}
						}
					]
				}
			}
			//{
			//  "how_to_play_button_holder": {
			//    "type": "panel",
			//    "size": [ "100%c - 1px", 0 ],
			//    "inherit_max_sibling_height": true,
			//    "controls": [
			//      {
			//        "how_to_play_button@trade2.how_to_play_button": {
			//          "anchor_from": "right_middle",
			//          "anchor_to": "right_middle"
			//        }
			//      }
			//    ]
			//  }
			//}
			//Hide how to play button - Alien
		]
	}
}

trade_2_screen_pocket.json 기본 UI 모음 1 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: trade_2_screen_pocket.json
// 분류: 기본 UI 모음 1 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// 이 파일의 이름표(다른 파일에서 @로 참조)
	"namespace": "trade2_pocket",
	// ???/?? ??
	"trade_and_help_buttons": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 가로/세로 크기
		"size": [
			"100%",
			32
		],
		// 쌓는 방향(가로/세로)
		"orientation": "horizontal",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"trade_button_holder": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": [
						"fill",
						"100%"
					],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"trade_button@trade2.trade_button": {
								// 가로/세로 크기
								"size": [
									"100%",
									"100%"
								]
							}
						}
					]
				}
			}
			//{
			//  "how_to_play_button_holder": {
			//    "type": "panel",
			//    "size": [ "100%c - 1px", "100%" ],
			//    "controls": [
			//      {
			//        "how_to_play_button@trade2.how_to_play_button": {
			//          "size": [ 32, "100%" ],
			//          "anchor_from": "right_middle",
			//          "anchor_to": "right_middle",
			//          "$button_font_size": "large",
			//          "$button_text_max_size": [ "100%", 16 ]
			//        }
			//      }
			//    ]
			//  }
			//}
			//Hide how to play button - Alien
		]
	}
}

ui_common.json 기본 UI 모음 1 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: ui_common.json
// 분류: 기본 UI 모음 1 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "common",
    //---------------------------------------------------------------------------
    // Common controls
    //---------------------------------------------------------------------------
    "screen_background": {
        // 이미지 표시
        "type": "image",
        // 사용할 이미지 경로
        "texture": "textures/ui/screen_background",
        // 겹치는 순서(숫자 클수록 위)
        "layer": -10,
        // 완전히 제거(공간도 없음)
        "ignored": "$is_holographic",
        // 오버라이드 가능한 변수
        "$screen_background_alpha|default": 0.75,
        "alpha": 0 //Makes some backgrounds invisible (inventory background, pause screen background)
    }
}

settings sections

general_section.json 기본 UI 모음 1 · settings sections

필요한 부분만 참고해서 가져가세요.

// 예제: general_section.json
// 분류: 기본 UI 모음 1 / settings sections
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
/********************************************************
+*   (c) Mojang. All rights reserved                       *
+*   (c) Microsoft. All rights reserved.                   *
+*********************************************************/

{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "general_section",

  // ???/?? ??
  "sound_section": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 오버라이드 가능한 변수
    "$spatialPatternsPadding": [ 20, 20 ], // Less padding between sliders - Alien
    // 오버라이드 가능한 변수
    "$audioSlidersSize": [ "75% - 2px", 16 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "sound_button_toggle",
        // 계산식/참조 값
        "source_property_name": "(#toggle_state and not $use_ore_ui_settings_audio)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      // Add some padding between the buttons/toggles to reduce the impression upon the eyes. (ADO:515619)
      {
        // ???/?? ??
        "paddingMainVolume": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$spatialPatternsPadding"
        }
      },

      {
        // 다른 템플릿을 가져와서 확장(상속)
        "option_slider_0@settings_common.option_slider": {
          // 가로/세로 크기
          "size": "$audioSlidersSize",
          // 오버라이드 가능한 변수
          "$option_label": "#main_volume_slider_label",
          // 오버라이드 가능한 변수
          "$slider_name": "main_volume",
          // 오버라이드 가능한 변수
          "$slider_value_binding_name": "#main_volume",
          // 오버라이드 가능한 변수
          "$slider_tts_text_value": "#main_volume_text_value",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#main_volume_enabled",
          // 오버라이드 가능한 변수
          "$focus_override_up": "FOCUS_OVERRIDE_STOP",
          // 오버라이드 가능한 변수
          "$label_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$option_label"
            }
          ]
        }
      },

      //Add some padding between the buttons/toggles to reduce the impression upon the eyes. (ADO:515619)
      {
        // ???/?? ??
        "paddingDividerAudioSettings": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [5, 5] // Slightly extra padding to seperate main volume from individuals - Alien
        }
      },

      {
        // ???/?? ??
        "dividerAudioSettings": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c + 14px" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "section_divider": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100% - 30px", 1 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 사용할 이미지 경로
                "texture": "textures/ui/list_item_divider_line_light"
              }
            }
          ]
        }
      },

      // Add some padding between the buttons/toggles to reduce the impression upon the eyes. (ADO:515619)
      {
        // ???/?? ??
        "paddingMusic": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [5, 5]
        }
      },

      {
        // 다른 템플릿을 가져와서 확장(상속)
        "option_slider_1@settings_common.option_slider": {
          // 가로/세로 크기
          "size": "$audioSlidersSize",
          // 오버라이드 가능한 변수
          "$option_label": "#music_volume_slider_label",
          // 오버라이드 가능한 변수
          "$slider_name": "music_volume",
          // 오버라이드 가능한 변수
          "$slider_value_binding_name": "#music_volume",
          // 오버라이드 가능한 변수
          "$slider_tts_text_value": "#music_volume_text_value",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#music_volume_enabled",
          // 오버라이드 가능한 변수
          "$label_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$option_label"
            }
          ]
        }
      },

      // Add some padding between the buttons/toggles to reduce the impression upon the eyes. (ADO:515619)
      {
        // ???/?? ??
        "paddingSound": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$spatialPatternsPadding"
        }
      },

      {
        // 다른 템플릿을 가져와서 확장(상속)
        "option_slider_2@settings_common.option_slider": {
          // 가로/세로 크기
          "size": "$audioSlidersSize",
          // 오버라이드 가능한 변수
          "$option_label": "#sound_volume_slider_label",
          // 오버라이드 가능한 변수
          "$slider_name": "sound_volume",
          // 오버라이드 가능한 변수
          "$slider_value_binding_name": "#sound_volume",
          // 오버라이드 가능한 변수
          "$slider_tts_text_value": "#sound_volume_text_value",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#sound_volume_enabled",
          // 오버라이드 가능한 변수
          "$label_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$option_label"
            }
          ]
        }
      },

      // Add some padding between the buttons/toggles to reduce the impression upon the eyes. (ADO:515619)
      {
        // ???/?? ??
        "paddingAmbient": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$spatialPatternsPadding"
        }
      },

      {
        // 다른 템플릿을 가져와서 확장(상속)
        "option_slider_3@settings_common.option_slider": {
          // 가로/세로 크기
          "size": "$audioSlidersSize",
          // 오버라이드 가능한 변수
          "$option_label": "#ambient_volume_slider_label",
          // 오버라이드 가능한 변수
          "$slider_name": "ambient_volume",
          // 오버라이드 가능한 변수
          "$slider_value_binding_name": "#ambient_volume",
          // 오버라이드 가능한 변수
          "$slider_tts_text_value": "#ambient_volume_text_value",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#ambient_volume_enabled",
          // 오버라이드 가능한 변수
          "$label_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$option_label"
            }
          ]
        }
      },

      // Add some padding between the buttons/toggles to reduce the impression upon the eyes. (ADO:515619)
      {
        // ???/?? ??
        "paddingBlockVolume": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$spatialPatternsPadding"
        }
      },

      {
        // 다른 템플릿을 가져와서 확장(상속)
        "option_slider_4@settings_common.option_slider": {
          // 가로/세로 크기
          "size": "$audioSlidersSize",
          // 오버라이드 가능한 변수
          "$option_label": "#block_volume_slider_label",
          // 오버라이드 가능한 변수
          "$slider_name": "block_volume",
          // 오버라이드 가능한 변수
          "$slider_value_binding_name": "#block_volume",
          // 오버라이드 가능한 변수
          "$slider_tts_text_value": "#block_volume_text_value",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#block_volume_enabled",
          // 오버라이드 가능한 변수
          "$label_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$option_label"
            }
          ]
        }
      },

      // Add some padding between the buttons/toggles to reduce the impression upon the eyes. (ADO:515619)
      {
        // ???/?? ??
        "paddingHostile": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$spatialPatternsPadding"
        }
      },

      {
        // 다른 템플릿을 가져와서 확장(상속)
        "option_slider_5@settings_common.option_slider": {
          // 가로/세로 크기
          "size": "$audioSlidersSize",
          // 오버라이드 가능한 변수
          "$option_label": "#hostile_volume_slider_label",
          // 오버라이드 가능한 변수
          "$slider_name": "hostile_volume",
          // 오버라이드 가능한 변수
          "$slider_value_binding_name": "#hostile_volume",
          // 오버라이드 가능한 변수
          "$slider_tts_text_value": "#hostile_volume_text_value",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#hostile_volume_enabled",
          // 오버라이드 가능한 변수
          "$label_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$option_label"
            }
          ]
        }
      },

      // Add some padding between the buttons/toggles to reduce the impression upon the eyes. (ADO:515619)
      {
        // ???/?? ??
        "paddingNeutralVolume": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$spatialPatternsPadding"
        }
      },

      {
        // 다른 템플릿을 가져와서 확장(상속)
        "option_slider_6@settings_common.option_slider": {
          // 가로/세로 크기
          "size": "$audioSlidersSize",
          // 오버라이드 가능한 변수
          "$option_label": "#neutral_volume_slider_label",
          // 오버라이드 가능한 변수
          "$slider_name": "neutral_volume",
          // 오버라이드 가능한 변수
          "$slider_value_binding_name": "#neutral_volume",
          // 오버라이드 가능한 변수
          "$slider_tts_text_value": "#neutral_volume_text_value",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#neutral_volume_enabled",
          // 오버라이드 가능한 변수
          "$label_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$option_label"
            }
          ]
        }
      },

      // Add some padding between the buttons/toggles to reduce the impression upon the eyes. (ADO:515619)
      {
        // ???/?? ??
        "paddingPlayervolume": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$spatialPatternsPadding"
        }
      },

      {
        // 다른 템플릿을 가져와서 확장(상속)
        "option_slider_7@settings_common.option_slider": {
          // 가로/세로 크기
          "size": "$audioSlidersSize",
          // 오버라이드 가능한 변수
          "$option_label": "#player_volume_slider_label",
          // 오버라이드 가능한 변수
          "$slider_name": "player_volume",
          // 오버라이드 가능한 변수
          "$slider_value_binding_name": "#player_volume",
          // 오버라이드 가능한 변수
          "$slider_tts_text_value": "#player_volume_text_value",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#player_volume_enabled",
          // 오버라이드 가능한 변수
          "$label_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$option_label"
            }
          ]

        }
      },

      // Add some padding between the buttons/toggles to reduce the impression upon the eyes. (ADO:515619)
      {
        // ???/?? ??
        "paddingRecordVolume": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$spatialPatternsPadding"
        }
      },

      {
        // 다른 템플릿을 가져와서 확장(상속)
        "option_slider_8@settings_common.option_slider": {
          // 가로/세로 크기
          "size": "$audioSlidersSize",
          // 오버라이드 가능한 변수
          "$option_label": "#record_volume_slider_label",
          // 오버라이드 가능한 변수
          "$slider_name": "record_volume",
          // 오버라이드 가능한 변수
          "$slider_value_binding_name": "#record_volume",
          // 오버라이드 가능한 변수
          "$slider_tts_text_value": "#record_volume_text_value",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#record_volume_enabled",
          // 오버라이드 가능한 변수
          "$label_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$option_label"
            }
          ]
        }
      },

      // Add some padding between the buttons/toggles to reduce the impression upon the eyes. (ADO:515619)
      {
        // ???/?? ??
        "paddingWeatherVolume": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$spatialPatternsPadding"
        }
      },

      {
        // 다른 템플릿을 가져와서 확장(상속)
        "option_slider_9@settings_common.option_slider": {
          // 가로/세로 크기
          "size": "$audioSlidersSize",
          // 오버라이드 가능한 변수
          "$option_label": "#weather_volume_slider_label",
          // 오버라이드 가능한 변수
          "$slider_name": "weather_volume",
          // 오버라이드 가능한 변수
          "$slider_value_binding_name": "#weather_volume",
          // 오버라이드 가능한 변수
          "$slider_tts_text_value": "#weather_volume_text_value",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#weather_volume_enabled",
          // 오버라이드 가능한 변수
          "$label_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$option_label"
            }
          ]
        }
      },

      // Add some padding between the buttons/toggles to reduce the impression upon the eyes. (ADO:515619)
      {
        // ???/?? ??
        "paddingTTSVolume": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$spatialPatternsPadding"
        }
      },

      {
        // 다른 템플릿을 가져와서 확장(상속)
        "option_slider_10@settings_common.option_slider": {
          // 가로/세로 크기
          "size": "$audioSlidersSize",
          // 오버라이드 가능한 변수
          "$option_label": "#texttospeech_volume_slider_label",
          // 오버라이드 가능한 변수
          "$slider_name": "texttospeech_volume",
          // 오버라이드 가능한 변수
          "$slider_value_binding_name": "#texttospeech_volume",
          // 오버라이드 가능한 변수
          "$slider_tts_text_value": "#texttospeech_volume_text_value",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#texttospeech_volume_enabled",
          // 오버라이드 가능한 변수
          "$label_bindings": [
            {
              // 가져올 값 이름
              "binding_name": "$option_label"
            }
          ]
        }
      },

      // Add some padding between the buttons/toggles to reduce the impression upon the eyes. (ADO:515619)
      {
        // ???/?? ??
        "paddingResetVolumes": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$spatialPatternsPadding"
        }
      },

      {
        // 다른 템플릿을 가져와서 확장(상속)
        "reset_button@settings_common.action_button": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $is_pregame)",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.reset_settings",
          // 오버라이드 가능한 변수
          "$button_text": "options.resetSettings",
          // 오버라이드 가능한 변수
          "$focus_override_down": "FOCUS_OVERRIDE_STOP",
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ?? ??
            "reset_group": "audio"
          }
        }
      },

      // Add some padding between the buttons/toggles to reduce the impression upon the eyes. (ADO:515619)
      {
        // ???/?? ??
        "paddingEndOfList": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$spatialPatternsPadding"
        }
      }

    ]
  }

}

settings_common.json 기본 UI 모음 1 · settings sections

필요한 부분만 참고해서 가져가세요.

// 예제: settings_common.json
// 분류: 기본 UI 모음 1 / settings sections
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// 이 파일의 이름표(다른 파일에서 @로 참조)
	"namespace": "settings_common",
	// ???/?? ??
	"settings_content": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 이 안에 들어가는 부품 목록
		"controls": [
			// Adding fill background color for all settings.
			{
				// ???/?? ??
				"background": {
					// 오버라이드 가능한 변수
					"$layer|default": -1,
					// 조건에 따라 변수 값을 바꾸기
					"variables": [
						{
							// 이 조건이 맞으면 적용
							"requires": "($is_realm_slot or $realm_no_world_edit)",
							// 오버라이드 가능한 변수
							"$layer": -2
						}
					],
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/White",
					// ?? ??
					"keep_ratio": false,
					// 가로/세로 크기
					"size": [
						"100%",
						"100%sm"
					],
					// ?? (R,G,B,A)
					"color": [
						0.192,
						0.196,
						0.2
					], // First test: [0.239, 0.204, 0.204]
					// 기준점에서 이동하는 거리
					"offset": [
						0,
						0
					],
					// 겹치는 순서(숫자 클수록 위)
					"layer": "$layer",
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_left",
					"alpha": 0 //Makes texture transparent - Alien
				}
			},
			{
				// ???/?? ??
				"stack_panel": {
					// 줄맞춤 컨테이너: 가로/세로로 자동 배치
					"type": "stack_panel",
					// 가로/세로 크기
					"size": [
						"100%",
						"100%"
					],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"content_panel": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": [
									"100%",
									"fill"
								],
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// 다른 템플릿을 가져와서 확장(상속)
										"common_panel@common.fullscreen_header": {
											// 오버라이드 가능한 변수
											"$dialog_background": "dialog_background_hollow_3"
										}
									},
									{
										// ???/?? ??
										"container": {
											// 패널: 다른 부품을 담는 바닥판
											"type": "panel",
											// 가로/세로 크기
											"size": [
												"100%",
												"100% - 4px"
											],
											// 이 안에 들어가는 부품 목록
											"controls": [
												{
													// 다른 템플릿을 가져와서 확장(상속)
													"$dialog_content@$dialog_content": {}
												}
											]
										}
									}
								]
							}
						}
					]
				}
			},
			{
				// ???/?? ??
				"popup_dialog_factory": {
					// 리스트를 자동으로 생성하는 공장
					"type": "factory",
					// 팩토리 템플릿 매핑
					"control_ids": {
						// ?? ??
						"purchase_failed": "@realms_create.popup_dialog__purchase_failed",
						// ?? ??
						"purchase_in_progress": "@realms_create.popup_dialog__purchase_in_progress",
						// ?? ??
						"share_by_link": "@realms_allowlist.popup_dialog__share_by_link",
						// ?? ??
						"options_modal": "@realms_allowlist.popup_dialog__options",
						// ?? ??
						"backups_modal": "@realms_settings.popup_dialog__backups",
						// ?? ??
						"sign_out_fail": "@general_section.sign_out_fail_popup",
						// ?? ??
						"edu_onedrive_error": "@general_section.edu_cloud_onedrive_error_popup"
					}
				}
			}
		]
	}
}

기본 UI 모음 2 92 개

기본

_global_variables.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: _global_variables.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 오버라이드 가능한 변수
  "$rainbowpieui_ci": false,
  // 오버라이드 가능한 변수
  "$rainbowpieui_commit_id": "local~hash",
  // 오버라이드 가능한 변수
  "$rainbowpieui_branch_type": "release",
  // 오버라이드 가능한 변수
  "$rainbowpieui_branch_name": "local~branch",
  // 오버라이드 가능한 변수
  "$rainbowpieui_branch_display_name": "Release",

  // 오버라이드 가능한 변수
  "$rainbowpieui_engine_version": "211000",
  // 오버라이드 가능한 변수
  "$rainbowpieui_patch_version": "10550",
  // 오버라이드 가능한 변수
  "$rainbowpieui_hotfix_version": "1",
  // 오버라이드 가능한 변수
  "$rainbowpieui_engine_version_name": "2.11",
  // 오버라이드 가능한 변수
  "$rainbowpieui_full_version_name": "2.11.10550.master",
  // 오버라이드 가능한 변수
  "$rainbowpieui_codename": "cookiecat",
  // 오버라이드 가능한 변수
  "$rainbowpieui_watermark": true,
  // 오버라이드 가능한 변수
  "$rainbowpieui_bool": true,

  // 오버라이드 가능한 변수
  "$rainbowpieui_version_minecraft_subpacks": "v1.21.11x",
  // 오버라이드 가능한 변수
  "$rainbowpieui_version_minecraft_target": "v1.21.113",
  // 오버라이드 가능한 변수
  "$rainbowpieui_version_minecraft_bigver": "v1.21",
  // 오버라이드 가능한 변수
  "$rainbowpieui_version_minecraft_max": "v1.21.119",
  // 오버라이드 가능한 변수
  "$rainbowpieui_version_minecraft_min": "v1.21.110",

  // 오버라이드 가능한 변수
  "$mintui_bool": true,
  // 오버라이드 가능한 변수
  "$mintui_base_name": "MintUI",
  // 오버라이드 가능한 변수
  "$mintui_base_branch": "cookiecat",
  // 오버라이드 가능한 변수
  "$mintui_base_major_version": "3",
  // 오버라이드 가능한 변수
  "$mintui_base_minor_version": "2",
  // 오버라이드 가능한 변수
  "$mintui_base_version": "3172",
  // 오버라이드 가능한 변수
  "$mintui_pack_name": "Rainbow Pie UI",
  // 오버라이드 가능한 변수
  "$mintui_pack_description": "Minecraft UI Pack\n§ehttps://mintraspberry.cool/rainbowpieui",
  // 오버라이드 가능한 변수
  "$mintui_pack_uuid": "82d610e8-0968-4c0a-a47e-38e6663ee6ff",
  // 오버라이드 가능한 변수
  "$mintui_pack_version": "2.11.10550",

  // String
  "$rainbowpie_ui_string_about_description": "This UI made by Mintraspberry Cool with VSCode.\nOpen source so that everyone can use it freely.\nGithub: §ehttps://github.com/MintCoolMC/MCBE_RainbowPieUI2§r\nIf you want to support me, check out the link below.\n§ehttps://mintraspberry.cool/donate§r",

  // Alert
  "$rainbowpie_ui_alert_enabled": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_alert_title": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_alert_text": "",

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_animation_container_transition_time": 0.25,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_animation_container_transition_effect_exit": "out_quart",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_animation_container_transition_effect_entrance": "out_quart",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_animation_container_v2_transition_time": 0.25,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_animation_container_v2_transition_effect_exit": "out_quart",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_animation_container_v2_transition_effect_entrance": "out_quart",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_animation_transition_time": 0.25,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_animation_header_transition_effect_exit": "out_quart",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_animation_header_transition_effect_entrance": "out_quart",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_animation_transition_effect_exit": "out_quart",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_animation_transition_effect_entrance": "out_quart",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_animation_chat_transition_time": 0.25,

  // Flags
  "$rainbowpie_ui_flag_resourcepack_identifier": "", // 兼容其他资源包时的标记
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_resourcepack_displayname": "", // 兼容其他资源包时的显示名称
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_server_identifier": "", // 兼容服务器时的标记
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_server_displayname": "", // 兼容服务器时的显示名称
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_notification_features_disabled": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_notification_features_disabled_reason": "", // resourcepack; server
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_server_infomation_enabled": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_server_infomation_logo_name": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_server_infomation_server_name": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_server_infomation_link_website": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_server_infomation_link_support": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_server_infomation_description": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_custom_server_icon": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_custom_server_icon_name": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_bg_mask_ingame": true, // 在游戏内是否显示mask
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_bg_mask": true, // 在游戏外是否显示mask
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_overlay_screen": "toast_screen.toast_screen_content,debug_screen.content_panel,hud.hud_content,", // 覆盖界面
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_overlay_screen_alias": "debug_screen,toast_screen,hud,", // 覆盖界面
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_watermark_ignore": "release,prerelease",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_watermark_awalys": "dev",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_settings_account_panel": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_settings_quick_perspective": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_tablist_selfTag": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_play_bottom_panel": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_about_verison_infomation": true,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_pause_myinfo_disabled": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_pause_tab_scoreboard": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_pause_quit_doubleclick": true,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_hud_hotbar_mode": 1,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_hud_hidehud_clickspace": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_hud_chat_halfscreen": true, // Chat Panel Half Screen
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_hud_hotbar_rounded": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_hud_expbar_empty_text": "o.0", // When exp is empty, display this text

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_icon_maker": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_input_enable_profanity_filter": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_dropdown_default_show_button": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_disconnect_ui_modified": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_inventory_debug": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_persona_debug": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_disable_spatial_pattern_fix": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_inventory_cell_highlight_border": true,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_start_splash_text": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_pause_splash_text": false,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_dialog_ingame_oqaque": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_inventory_oqaque": false,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_chat_use_ui_font": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_server_form_force": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_host_options_advanced": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_chat_message_profanity_filter": true,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_start_dialog_alert": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_start_dialog_alert_title": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_start_dialog_alert_text": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_start_dialog_alert_button": "gui.ok",

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_start_design02_gradient": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_start_pixelart": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_start_gathering_panel_ignored": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_start_gathering_denylist": "SoulSteel,", // hide gathering panel for these button texts

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_durabilityview_title": true,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_screenbackground_gradient": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_ingamebackground_gradient": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_inventorybackground_gradient": true,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_scoreboard_default_font": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_chatui_default_font": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_hudtitle_default_font": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_huditemname_default_font": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_hudbossname_default_font": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_flying_item_renderer": false, // Use flying_item_renderer on mouse mode
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_sign_edit_preview_enabled": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_hud_durability_warning": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_inventory_compass_postion": 1, // 0:TOP 1:BOTTOM
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_inventory_stack_count_font": "OldSmoothFont",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_disable_custom_chat_ui": false,

  // Item ID Flags
  "$rainbowpie_ui_flag_item_clock_id": 419,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_item_compass_id": 417,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_item_recovery_compass_id": 682,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_item_chest": 54,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_item_hopper": 560,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_item_dropper": 125,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_item_dispenser": 23,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_item_crafter": -313,

  // Unnamed Flags
  "$rainbowpie_ui_flag_71042f58": false, // Disable background on selector
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_54edd49d": true, // Resource Packs Tab Mode
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_840d1a5c": true, // Resource Packs Hide More
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_8dcce82d": true, // StartV2 UI
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_6d2ac350": true, // New chat for touch
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_6bb756a3": true, // New dialog style for popup dialog
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_b3c44822": true, // Rainbow Pie UI Chat Settings
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_0ffd0593": false, // HUD Paper doll
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_d9ed3763": true, // New HUD Tab list
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_82f66bc6": false, // Chat Extra Message Panel Animation
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_84d26622": true, // Show All dropdown
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_688c902f": true, // All dropdown using rainbowpie style
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_d39385b8": false, // Dialog style DisconnectUI
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_05aab186": true, // Hide Recommended Skin Packs
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_d28dfac0": true, // Persona Screen Blur Panel
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_ca81cc28": true, // Trade2 Result Item Name Panel
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_e9c6dfdb": true, // Storage management Tab
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_d36e5f2a": false, // InGame dialog background
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_86c54726": true, // Custom HoverText
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_a3a3e4ee": true, // Background Noise
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_1dc354bd": false, // InGame Background Noise
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_3f247b1e": false, // Dialog Title Center
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_3f611894": false, // Inventory Title Center
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_9ce040c1": true, // Inventory Durability Panel
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_84df7492": true, // New UI animation for inventory and containers (InventoryUI)
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_149baa36": true, // Set hud chat max line to 10
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_fbadd01f": false, // StartV2 UI animations
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_be13f8d7": true, // StartV2 UI Get Started Button
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_135972c6": true, // UI Error Check
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_82d2c0e7": true, // Background Information
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_1c167cde": false, // Start V2 Topbar
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_282dd0a5": true, // StartUI Back To Vanilla Button
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_56cd0456": true, // PauseUI Back To Vanilla Button
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_3e35fb2e": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_3520da91": true, // EASTER EGGS
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_9920f05c": true, // Inventory UI Compass Panel
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_2f8a5e27": true, // StartUI Play button more option
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_50d7b9e9": true, // StartUI Servers Button
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_1d6d26cc": true, // StartUI Store Button Art
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_d6bb54d8": true, // InventoryUI Global Item Search
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_c448d476": false, // ProgressUI World loading background blur
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_72873fec": true, // InventoryUI new recipe book ui animaion
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_ef158e0f": true, // InventoryUI vanilla search bar button
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_29bdcf8a": true, // InventoryUI Global Item Fastplace
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_a012c161": true, // Chat Message Edit and Copy (Experimental)
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_ae054b5d": false, // New player joined world (Experimental)
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_99d9851a": true, // Button border glint
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_522748cc": true, // Android style Progress Bar (from ElytraUI)
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_111d8c96": true, // Pause UI Profile Button (Mouse only)
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_31e1a20e": false, // ProgressUI Dimension background disabled; set false by default, Because the game flickers when switching dimensions
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_c48fd864": true, // Disconnect Text Edit
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_b00b6372": true, // PauseUI Skin Button Next Profile Button
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_79f6bcad": true, // Language Selector Flags (WorldTown)
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_317055aa": true, // PauseUI Total Players (Player Count)
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_1597ee9b": true, // Advanced Host Time Tweaker
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_6a8911d5": true, // Features Disabled Notification
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_1fa7dfd7": true, // NEW HUD TabList Header
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_75ad0b10": true, // HUD Boss Health Percentage
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_dc165cd2": true, // Hidden Boss Health Percentage When Percentage is 100.0%
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_73085b33": true, // Crafting Helper
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_5354b722": true, // Only display locator_bar when holding [TAB] key (Keyboard Only)
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_19efcc11": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_988450b0": true, // Independent Time Tweaker
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_fb3b5106": true, // Independent Cmd Helper
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_64fd7c05": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_f733129c": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_a3e3c9d0": true, // Force disable title text background
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_64981341": true, // Color Picker (Type ".color" in your chat but don't send it)
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_3eb56fef": false, // InventoryUI animation quick exit
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_5e1f3f4e": true, // HUD Hotbar Animation

  // Debug
  "$rainbowpie_ui_debug": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_debug_screen_animation": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_debug_screen_content": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_debug_errcheck_debug": false,
  // 仅控制不同的UI显示,不会影响bindings中的判定,留空保持默认
  "$rainbowpie_ui_debug_ui_device_override": "", // windows;windows_arm;windows_mobile;android;apple_ios;apple_osx;apple_tv;console;console_xboxone;console_ps4
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_debug_ui_input_override": "", // touch;mouse;game_pad
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_debug_ui_new_video_settings": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_debug_ui_debug": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_debug_ui_var_override": false, // 启用后将使用下面的值
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_debug_ui_var_override_file_picking_supported": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_debug_ui_var_override_world_archive_support": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_debug_ui_var_override_is_low_memory_device": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_debug_ui_var_override_pre_release": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_debug_ui_var_override_trial": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_debug_ui_var_override_is_publish": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_debug_ui_var_override_education_edition": false,

  // Path
  "$rainbowpie_ui_path_home": "textures/RainbowPieUI",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_path_theme": "textures/RainbowPieUI/theme",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_path_overrides": "textures/RainbowPieUI/overrides",

  // Rainbow Pie UI Features
  "$rainbowpie_ui_feature_markbest": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_feature_background_mask": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_feature_background_blur": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_feature_settings_themedIcon": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_feature_hud_tablist": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_feature_gamepad_connect_tip": false, // 暂时没有做完
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_feature_musicplayer": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_feature_command_chat": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_feature_inventory_durability": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_feature_hud_durability": true,

  // Rainbow Pie UI Internal Modules
  "$rainbowpie_ui_module_chest_fastpick": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_module_hud_block_counter": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_module_hud_bow_helper": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_module_hud_compass": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_module_hud_selected_item_id": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_module_inventory_actions": true,

  // Rainbow Pie UI ModuleFlags
  "$rainbowpie_ui_moduleflag_chest_fastpick_redstone_blocks": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_moduleflag_hud_block_counter_blockids": "id1,id2,id3,id4,id5,id35,id-552,id-553,id-554,id-555,id-556,id-557,id-558,id-559,id-560,id-561,id-562,id-563,id-564,id-565,id-566,id236,id-635,id-634,id-642,id-639,id-641,id-628,id-631,id-632,id-640,id-636,id-630,id-638,id-637,id-629,id-633,id-722,id-719,id172,id159,id-731,id-730,id-738,id-735,id-737,id-724,id-727,id-728,id-736,id-732,id-726,id-734,id-733,id-725,id-729,id20,id241,id-680,id-679,id-687,id-684,id-686,id-673,id-676,id-677,id-685,id-681,id-675,id-683,id-682,id-674,id-678,",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_moduleflag_hud_bow_helper_bowids": "id324,id608,",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_moduleflag_hud_bow_helper_arrowids": "id325,",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_moduleflag_inventory_actions_delete_item_enabled": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_moduleflag_inventory_actions_delete_all_item_enabled": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_moduleflag_inventory_actions_drop_item_enabled": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_moduleflag_inventory_actions_drop_all_item_enabled": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_moduleflag_inventory_actions_quick_craft_enabled": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_moduleflag_inventory_actions_armor_switch_enabled": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_moduleflag_inventory_actions_armor_ids_helmet": "id360,id364,id368,id376,id372,id646,",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_moduleflag_inventory_actions_armor_ids_chestplate": "id361,id365,id369,id377,id373,id647,",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_moduleflag_inventory_actions_armor_ids_leggings": "id362,id366,id370,id378,id374,id648,",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_moduleflag_inventory_actions_armor_ids_boots": "id363,id367,id371,id379,id375,id649,",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_flag_bce3269f": true, // InventoryUI new touch mode drop

  // Theme System //
  "$rainbowpie_ui_themesystem_version": "1095",

  // Theme Info //
  "$rainbowpie_ui_theme_icon": "textures/MintUI/pack_icon",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_name": "rainbowpie.ui.theme.default_name",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_author": "rainbowpie.ui.theme.default_auther",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_desc": "rainbowpie.ui.theme.default_description",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_description": "rainbowpie.ui.theme.default_description",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_background_name": "Mushisland",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_background_description": "Minecraft Java v1.21.4\nBliss Shader with Distant Horizons\nWorld: Terra Bukkit Plugin\n§eShot by Mintraspberry Cool",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_version": "1095",

  // Theme Background //
  "$rainbowpie_ui_theme_background_mask_texture_ingame": "textures/MintUI/background/background_mask",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_background_mask_texture": "", // 如需使用请添加,默认不使用。default: "textures/MintUI/background/background_mask"
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_background_noise_texture": "textures/MintUI/background/background_noise",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_background_blur_texture": "textures/MintUI/background/background_blur",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_background_texture": "textures/MintUI/background/background",

  // Theme Global Variables //
  "$rainbowpie_ui_theme_global_title_text": "§4R§ca§6i§en§ab§bo§5w §6Pie§r",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_global_title_text_font": "MinecraftTen",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_global_title_text_scale": 3.0,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_global_text_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_global_background_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_global_background_alpha": 0.3,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_global_font_name": "SmoothFontLatin",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_global_font_backup_name": "default",

  // Theme Driven Variables //
  "$rainbowpie_ui_theme_driven_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_driven_alpha": 0.25,

  // Theme HoverText Variables //
  "$rainbowpie_ui_theme_hovertext_background_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_hovertext_background_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_hovertext_text_color": [ 1.0, 1.0, 1.0 ],

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_hovertext_bgicon_enabled": false,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_hovertext_bgicon_texture": "textures/items/apple",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_hovertext_bgicon_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_hovertext_bgicon_size": [ 14, "100%x" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_hovertext_bgicon_offset": [ -4, 0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_hovertext_bgicon_alpha": 0.4,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_hovertext_bgicon_fill": false,

  // Theme HUD Item Name Variables //
  "$rainbowpie_ui_theme_hud_itemname_background_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_hud_itemname_background_alpha": 0.5,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_hud_itemname_text_color": [ 1.0, 1.0, 1.0 ],

  // Theme Toast Variables //
  "$rainbowpie_ui_theme_toast_background_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toast_background_alpha": 0.5,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toast_text_color": [ 1.0, 1.0, 1.0 ],

  // Theme Sidebar Variables //
  "$rainbowpie_ui_theme_sidebar_background_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_sidebar_background_alpha": 0.2,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_sidebar_oqaque_background_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_sidebar_oqaque_background_alpha": 0.3,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_sidebar_verbose_background_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_sidebar_verbose_background_alpha": 0.3,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_sidebar_verbose_button_text_color": [ 1.0, 1.0, 1.0 ],

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_sidebar_verbose_oqaque_background_color": [ 0.12941176470588237, 0.12941176470588237, 0.12941176470588237 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_sidebar_verbose_oqaque_background_alpha": 1,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_sidebar_verbose_oqaque_button_text_color": [ 1.0, 1.0, 1.0 ],

  // Theme Dialog Variables //
  "$rainbowpie_ui_theme_dialog_header_color": [ 0.12941176470588237, 0.12941176470588237, 0.12941176470588237 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_dialog_header_alpha": 0.3,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_dialog_background_color": [ 0.12941176470588237, 0.12941176470588237, 0.12941176470588237 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_dialog_background_alpha": 0.7,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_dialog_title_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_dialog_content_background_color": [ 0.0, 0.0, 0.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_dialog_content_background_alpha": 0.4,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_dialog_content_color": [ 1.0, 1.0, 1.0 ],

  // Theme Close Button Variables //
  "$rainbowpie_ui_theme_closebutton_default_background_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_closebutton_default_background_alpha": 0.0,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_closebutton_default_color": [ 1.0, 1.0, 1.0 ],

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_closebutton_hover_background_color": [ 0.9019607843137256, 0.10196078431372548, 0.10196078431372548 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_closebutton_hover_background_alpha": 0.4,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_closebutton_hover_color": [ 1.0, 1.0, 1.0 ],

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_closebutton_pressed_background_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_closebutton_pressed_background_alpha": 0.4,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_closebutton_pressed_color": [ 0.9019607843137256, 0.10196078431372548, 0.10196078431372548 ],

  // Theme Topbar Variables //
  "$rainbowpie_ui_theme_topbar_background_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_topbar_background_alpha": 0.4,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_topbar_splitline_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_topbar_splitline_alpha": 0.0,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_topbar_text_color": [ 1.0, 1.0, 1.0 ],

  // Theme Background and Text Variables //
  "$rainbowpie_ui_theme_text_background_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_text_background_alpha": 0.4,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_text_text_color": [ 1.0, 1.0, 1.0 ],

  // Theme Background and Title Variables //
  "$rainbowpie_ui_theme_title_background_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_title_background_alpha": 0.5,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_title_text_color": [ 1.0, 1.0, 1.0 ],

  // Theme Text Edit Box Variables //
  "$rainbowpie_ui_theme_input_default_background_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_input_default_background_alpha": 0.4,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_input_default_btbar_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_input_default_btbar_alpha": 0.4,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_input_hover_background_color": [ 0.1725490196078431, 0.1725490196078431, 0.1725490196078431 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_input_hover_background_alpha": 0.4,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_input_hover_btbar_color": [ 0.4862745098039216, 0.5686274509803922, 0.7607843137254902 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_input_hover_btbar_alpha": 1,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_input_locked_background_color": [ 0.1725490196078431, 0.1725490196078431, 0.1725490196078431 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_input_locked_background_alpha": 0.4,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_input_locked_btbar_color": [ 0.7, 0.7, 0.7 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_input_locked_btbar_alpha": 0.4,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_input_text_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_input_placeholder_color": [ 0.8510, 0.8510, 0.8510 ],

  // Theme Scrollbar Variables //
  "$rainbowpie_ui_theme_scrollbar_background_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_scrollbar_background_alpha": 0.4,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_scrollbar_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_scrollbar_alpha": 1,

  // Theme Slider Variables //
  "$rainbowpie_ui_theme_slider_default_background_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_default_background_alpha": 0.4,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_hover_background_color": [ 0.4862745098039216, 0.5686274509803922, 0.7607843137254902 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_hover_background_alpha": 0.2,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_locked_background_color": [ 0.8, 0.8, 0.8 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_locked_background_alpha": 0.4,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_default_progress_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_default_progress_alpha": 0.7,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_hover_progress_color": [ 0.623529411764706, 0.670588235294118, 0.780392156862745 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_hover_progress_alpha": 0.7,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_locked_progress_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_locked_progress_alpha": 0.7,


  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_default_button_color": [ 0.8470588235294118, 0.8588235294117647, 0.8588235294117647 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_default_button_alpha": 1.0,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_hover_button_color": [ 0.623529411764706, 0.670588235294118, 0.780392156862745 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_hover_button_alpha": 1.0,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_locked_button_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_locked_button_alpha": 0.7,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_text_default_color": [ 0.5, 0.5, 0.5 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_text_hover_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_text_locked_color": [ 0.7, 0.7, 0.7 ],

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_step_default_default_color": [ 0.623529411764706, 0.670588235294118, 0.780392156862745 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_step_progress_default_color": [ 0.4, 0.4, 0.4 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_step_default_hover_color": [ 0.3, 0.3, 0.3 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_slider_step_progress_hover_color": [ 0.4862745098039216, 0.5686274509803922, 0.7607843137254902 ],

  // Theme Progress Loading Bar Variables //
  "$rainbowpie_ui_theme_progress_empty_color": [ 0.141176, 0.396078, 0.129411 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_progress_full_color": [ 0.129411, 0.694117, 0.211764 ],

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_progress_empty_alpha": 0.4,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_progress_full_alpha": 0.4,

  // Theme Experience Bar Variables //
  "$rainbowpie_ui_theme_experience_empty_color": [ 0.141176, 0.396078, 0.129411 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_experience_full_color": [ 0.129411, 0.694117, 0.211764 ],

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_experience_empty_alpha": 0.5,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_experience_full_alpha": 0.6,

  // Theme Button Variables //
  "$rainbowpie_ui_theme_button_background_default_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_background_hover_color": [ 0.4862745098039216, 0.5686274509803922, 0.7607843137254902 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_background_pressed_color": [ 0.4862745098039216, 0.5686274509803922, 0.7607843137254902 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_background_locked_color": [ 0.4588235294117647, 0.4588235294117647, 0.4588235294117647 ],

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_background_default_alpha": 0.5,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_background_hover_alpha": 0.4,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_background_pressed_alpha": 0.3,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_background_locked_alpha": 0.3,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_default_offset": [ 0, 0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_hover_offset": [ 0, 0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_pressed_offset": [ 0, 0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_locked_offset": [ 0, 0 ],

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_text_default_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_text_hover_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_text_pressed_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_text_locked_color": [ 0.7, 0.7, 0.7 ],

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_border_default_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_button_border_default_alpha": 0.5,

  // Theme Toggle Variables //
  "$rainbowpie_ui_theme_toggle_background_default_default_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_locked_default_color": [ 0.4588235294117647, 0.4588235294117647, 0.4588235294117647 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_locked_checked_color": [ 0.4588235294117647, 0.4588235294117647, 0.4588235294117647 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_locked_checked_btbar_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_checked_default_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_checked_default_btbar_color": [ 0.4862745098039216, 0.5686274509803922, 0.7607843137254902 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_checked_hover_color": [ 0.1725490196078431, 0.1725490196078431, 0.1725490196078431 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_color": [ 0.4862745098039216, 0.5686274509803922, 0.7607843137254902 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_unchecked_default_color": [ 0.011, 0.011, 0.011 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color": [ 0.1725490196078431, 0.1725490196078431, 0.1725490196078431 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_color": [ 1.0, 1.0, 1.0 ],

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_default_default_alpha": 0.5,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_locked_default_alpha": 0.3,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_locked_checked_alpha": 0.3,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_locked_checked_btbar_alpha": 1.0,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_checked_default_alpha": 0.4,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_checked_default_btbar_alpha": 1.0,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha": 0.5,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_alpha": 1.0,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_unchecked_default_alpha": 0.5,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha": 0.5,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_alpha": 1.0,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_text_default_default_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_text_checked_default_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_text_checked_hover_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_text_unchecked_hover_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_toggle_text_locked_checked_color": [ 0.7, 0.7, 0.7 ],

  // Theme Inventory Variables //
  "$rainbowpie_ui_theme_inventory_global_background_color": [ 0.0, 0.0, 0.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_global_background_alpha": 0.2,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_background_enabled": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_background_color": [ 0.12941176470588237, 0.12941176470588237, 0.12941176470588237 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_background_alpha": 0.5,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_title_color": [ 1.0, 1.0, 1.0 ],

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_content_background_color": [ 0.0, 0.0, 0.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_content_background_alpha": 0.4,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_header_color": [ 0.12941176470588237, 0.12941176470588237, 0.12941176470588237 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_header_alpha": 0.3,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_header_title_color": [ 1.0, 1.0, 1.0 ],

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_cell_default_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_cell_default_alpha": 0.4,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_cell_red_color": [ 0.8509803921568627, 0.3019607843137255, 0.3019607843137255 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_cell_red_alpha": 0.4,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_cell_highlight_color": [ 0.3843137254901961, 0.7098039215686275, 0.192156862745098 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_cell_highlight_alpha": 0.4,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_cell_highlight_border_color": [ 1.0, 1.0, 1.0 ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_cell_highlight_border_alpha": 0.5,

  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_enabled": true,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_texture_inventory": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_texture_container": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_size": [ "42%", "100%x" ], // Please always use % ; Since the X-axis is fixed, it is recommended to use the percentage of the X-axis on the Y-axis
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_offset": [ 0, "-8.503401360544218%y" ], // Please always use % ; Since the X-axis is fixed, it is recommended to use the percentage of the X-axis on the Y-axis
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_fill": false,

  // Inventory Background Icon Variables //

  // Crafting (Player Inventory)
  "$rainbowpie_ui_theme_inventory_bgicon_crafting_texture": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_crafting_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_crafting_size": [ "42%", "100%x" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_crafting_offset": [ 0, "-8.503401360544218%y" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_crafting_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_crafting_fill": false,

  // Crafting (CraftingTable)
  "$rainbowpie_ui_theme_inventory_bgicon_craftingtable_texture": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_craftingtable_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_craftingtable_size": [ "42%", "100%x" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_craftingtable_offset": [ 0, "-8.503401360544218%y" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_craftingtable_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_craftingtable_fill": false,

  // Chest (Small)
  "$rainbowpie_ui_theme_inventory_bgicon_chest_texture": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chest_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chest_size": [ "42%", "100%x" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chest_offset": [ 0, "-8.503401360544218%y" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chest_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chest_fill": false,

  // Chest (Large)
  "$rainbowpie_ui_theme_inventory_bgicon_chestlarge_texture": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestlarge_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestlarge_size": [ "42%", "100%x" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestlarge_offset": [ 0, "-8.503401360544218%y" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestlarge_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestlarge_fill": false,

  // Ender Chest
  "$rainbowpie_ui_theme_inventory_bgicon_chestender_texture": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestender_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestender_size": [ "42%", "100%x" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestender_offset": [ 0, "-8.503401360544218%y" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestender_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestender_fill": false,

  // Shulker Box
  "$rainbowpie_ui_theme_inventory_bgicon_chestshulkerbox_texture": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestshulkerbox_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestshulkerbox_size": [ "42%", "100%x" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestshulkerbox_offset": [ 0, "-8.503401360544218%y" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestshulkerbox_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestshulkerbox_fill": false,

  // Barrel
  "$rainbowpie_ui_theme_inventory_bgicon_chestbarrel_texture": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestbarrel_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestbarrel_size": [ "42%", "100%x" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestbarrel_offset": [ 0, "-8.503401360544218%y" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestbarrel_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_chestbarrel_fill": false,

  // Furnace
  "$rainbowpie_ui_theme_inventory_bgicon_furnace_texture": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_furnace_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_furnace_size": [ "42%", "100%x" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_furnace_offset": [ 0, "-8.503401360544218%y" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_furnace_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_furnace_fill": false,

  // Blast Furnace
  "$rainbowpie_ui_theme_inventory_bgicon_furnaceblast_texture": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_furnaceblast_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_furnaceblast_size": [ "42%", "100%x" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_furnaceblast_offset": [ 0, "-8.503401360544218%y" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_furnaceblast_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_furnaceblast_fill": false,

  // Smoker
  "$rainbowpie_ui_theme_inventory_bgicon_furnacesmoker_texture": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_furnacesmoker_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_furnacesmoker_size": [ "42%", "100%x" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_furnacesmoker_offset": [ 0, "-8.503401360544218%y" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_furnacesmoker_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_furnacesmoker_fill": false,

  // Brewing Stand
  "$rainbowpie_ui_theme_inventory_bgicon_brewingstand_texture": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_brewingstand_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_brewingstand_size": [ "42%", "100%x" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_brewingstand_offset": [ 0, "-8.503401360544218%y" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_brewingstand_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_brewingstand_fill": false,

  // Anvil
  "$rainbowpie_ui_theme_inventory_bgicon_anvil_texture": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_anvil_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_anvil_size": [ "42%", "100%x" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_anvil_offset": [ 0, "-8.503401360544218%y" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_anvil_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_anvil_fill": false,

  // Grindstone
  "$rainbowpie_ui_theme_inventory_bgicon_grindstone_texture": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_grindstone_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_grindstone_size": [ "42%", "100%x" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_grindstone_offset": [ 0, "-8.503401360544218%y" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_grindstone_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_grindstone_fill": false,

  // Enchanting
  "$rainbowpie_ui_theme_inventory_bgicon_enchanting_texture": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_enchanting_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_enchanting_size": [ "42%", "100%x" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_enchanting_offset": [ 0, "-8.503401360544218%y" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_enchanting_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_enchanting_fill": false,

  // Smithing Table 2
  "$rainbowpie_ui_theme_inventory_bgicon_smithingtable2_texture": "",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_smithingtable2_anchor": "bottom_right",
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_smithingtable2_size": [ "42%", "100%x" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_smithingtable2_offset": [ 0, "-8.503401360544218%y" ],
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_smithingtable2_alpha": 0.8,
  // 오버라이드 가능한 변수
  "$rainbowpie_ui_theme_inventory_bgicon_smithingtable2_fill": false,

  // Theme End

  // Compatibility
  // Modify bbui's default mod settings
  "$rainbowpie_ui_compatibility_var_override_d5e1b7c2": true
}

_ui_defs.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: _ui_defs.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // ???/?? ??
  "ui_defs": [
    // MintUI
    "ui/MintUI/mintui_background.json",
    // RainbowPieUI
    "ui/RainbowPieUI/common/rainbowpie_ui_button.json",
    "ui/RainbowPieUI/common/rainbowpie_ui_common.json",
    "ui/RainbowPieUI/common/rainbowpie_ui_dialog.json",
    "ui/RainbowPieUI/common/rainbowpie_ui_gameplay.json",
    "ui/RainbowPieUI/common/rainbowpie_ui_inventory.json",
    "ui/RainbowPieUI/common/rainbowpie_ui_store_common.json",
    "ui/RainbowPieUI/common/rainbowpie_ui_tab.json",
    "ui/RainbowPieUI/common/rainbowpie_ui_toggle.json",
    // Removeable Module
    // 在这里移除即可,不要删除文件
    "ui/RainbowPieUI/module/chest_fastpick.json",
    "ui/RainbowPieUI/module/hud_block_counter.json",
    "ui/RainbowPieUI/module/hud_bow_helper.json",
    "ui/RainbowPieUI/module/hud_compass.json",
    "ui/RainbowPieUI/module/hud_selected_item_id.json",
    "ui/RainbowPieUI/module/inventory_actions.json",

    "ui/RainbowPieUI/module_lib/hud_item.json",
    "ui/RainbowPieUI/screen/music_player_screen.json",
    "ui/RainbowPieUI/ui_extras/settings_sections/general_section_controls.json",
    "ui/RainbowPieUI/ui_extras/settings_sections/settings_common_controls.json",
    "ui/RainbowPieUI/ui_extras/settings_sections/world_section_controls.json",
    "ui/RainbowPieUI/ui_extras/add_external_server_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/anvil_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/book_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/brewing_stand_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/cartography_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/chat_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/chest_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/command_block_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/content_log_controls.json",
    "ui/RainbowPieUI/ui_extras/content_log_history_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/credits_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/disconnect_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/enchanting_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/furnace_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/grindstone_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/horse_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/host_options_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/how_to_play_controls.json",
    "ui/RainbowPieUI/ui_extras/online_safety_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/hud_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/in_bed_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/inventory_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/invite_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/manifest_validation_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/mob_effect_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/npc_interact_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/pack_settings_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/pause_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/permissions_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/persona_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/play_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/popup_dialog_controls.json",
    "ui/RainbowPieUI/ui_extras/profile_card_controls.json",
    "ui/RainbowPieUI/ui_extras/profile_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/progress_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/realms_pending_invitations_controls.json",
    "ui/RainbowPieUI/ui_extras/realms_plus_ended_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/realmsplus_upgrade_notice_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/redstone_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/resource_packs_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/safe_zone_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/scoreboards_controls.json",
    "ui/RainbowPieUI/ui_extras/screenshot_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/server_form_controls.json",
    "ui/RainbowPieUI/ui_extras/sidebar_navigation_controls.json",
    "ui/RainbowPieUI/ui_extras/sign_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/smithing_table_2_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/start_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/stonecutter_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/storage_management_controls.json",
    "ui/RainbowPieUI/ui_extras/structure_editor_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/toast_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/trade_2_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/world_templates_screen_controls.json",
    "ui/RainbowPieUI/ui_extras/xbl_friend_finder_controls.json",
    "ui/RainbowPieUI/compatibility.json",
    "ui/RainbowPieUI/module_pack.json",
    "ui/RainbowPieUI/pixelart.json",
    "ui/RainbowPieUI/rainbowpie_ui_animations.json",
    "ui/RainbowPieUI/rainbowpie_ui_controls.json",
    "ui/RainbowPieUI/rainbowpie_ui_inventory_and_container.json",
    "ui/RainbowPieUI/rainbowpie_ui_module_list.json",
    "ui/RainbowPieUI/rainbowpie_ui_theme_preview.json",
    "ui/RainbowPieUI/verified_pack.json"
  ]
}

add_external_server_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: add_external_server_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "add_external_server",

  // ???/?? ??
  "text_edit_group/name_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "text_edit_group/edit_box": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_editbox_enabled": true
  },

  // ???/?? ??
  "save_button": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "remove",
        // ???/?? ??
        "where": {
          // 가져온 값을 다른 속성으로 연결
          "binding_name_override": "#visible"
        }
      }
    ]
  },

  // ???/?? ??
  "add_external_server_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "add_external_server",
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_add_external_server.add_external_server_screen_content"
  }
}

anvil_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: anvil_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "anvil",

  // ???/?? ??
  "cost_label/gray": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "anvil_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "maximized_input_dialog_panel@rainbowpieui_anvil.maximized_input_dialog_panel": {}
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "anvil_root_panel@rainbowpieui_anvil.anvil_root_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_84df7492)"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "text_edit_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "maximized_input_button@rainbowpieui_anvil.maximized_input_toggle_base": {
              // 오버라이드 가능한 변수
              "$button_image_size": [ "100% - 2px", "100% - 2px" ],
              // 기준점(어디에서 시작할지)
              "anchor_from": "right_middle",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "right_middle",
              // 가로/세로 크기
              "size": [ "100%y", "100%" ],
              // 오버라이드 가능한 변수
              "$toggle_group_forced_index": 1000,
              // 오버라이드 가능한 변수
              "$toggle_view_binding_name": "maximized_input",
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 계산/조건 결과를 연결
                  "binding_type": "view",
                  // ?? ??
                  "source_control_name": "maximized_input",
                  // 계산식/참조 값
                  "source_property_name": "(not #toggle_state)",
                  // 결과가 들어갈 속성
                  "target_property_name": "#enabled"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "text_edit_panel/text_edit_control": {
    // 기준점(어디에서 시작할지)
    "anchor_from": "left_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "left_middle",
    // 가로/세로 크기
    "size": [ "100% - 100%y", "100%" ],
    // 오버라이드 가능한 변수
    "$enable_profanity_filter": "$rainbowpie_ui_flag_input_enable_profanity_filter"
  },

  // ???/?? ??
  "plus_sign_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/anvil-plus')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "arrow_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_large')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "cross_out_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/crossout')"
  },

  // ???/?? ??
  "anvil_title_and_text_panel": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // 가로/세로 크기
    "size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "text_edit_control": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_editbox_enabled": true
  },

  // ???/?? ??
  "icon_and_text_panel/anvil_icon_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "anvil_title_and_text_panel/title_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "generic_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "top_half_panel": {
    // 기준점에서 이동하는 거리
    "offset": [ 7, 15 ]
  },

  // ???/?? ??
  "anvil_panel/root_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492"
  },

  // ???/?? ??
  "anvil_panel/root_panel/common_panel": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 8px", "100% - 28px" ]
  },

  // ???/?? ??
  "anvil_panel/root_panel/anvil_screen_inventory": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "container.repair"
            }
          }
        ]
      }
    ]
  }
}

anvil_screen_pocket.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: anvil_screen_pocket.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "anvil_pocket",

  // ???/?? ??
  "anvil_title_and_text_panel/text_edit_control": {
    // 오버라이드 가능한 변수
    "$enable_profanity_filter": "$rainbowpie_ui_flag_input_enable_profanity_filter"
  },

  // ???/?? ??
  "anvil_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "maximized_input_dialog_panel@rainbowpieui_anvil.maximized_input_dialog_panel": {}
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "anvil_title_and_text_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "maximized_input_button@rainbowpieui_anvil.maximized_input_toggle_base": {
              // 오버라이드 가능한 변수
              "$button_image_size": [ "100% - 4px", "100% - 4px" ],
              // 기준점(어디에서 시작할지)
              "anchor_from": "right_middle",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "right_middle",
              // 가로/세로 크기
              "size": [ "100%y", 20 ],
              // 기준점에서 이동하는 거리
              "offset": [ 0, -8 ],
              // 오버라이드 가능한 변수
              "$toggle_group_forced_index": 1000,
              // 오버라이드 가능한 변수
              "$toggle_view_binding_name": "maximized_input",
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 계산/조건 결과를 연결
                  "binding_type": "view",
                  // ?? ??
                  "source_control_name": "maximized_input",
                  // 계산식/참조 값
                  "source_property_name": "(not #toggle_state)",
                  // 결과가 들어갈 속성
                  "target_property_name": "#enabled"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "slots_panel/plus_sign": {
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "slots_panel/arrow": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_inactive')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "slots_panel/arrow/cross_out": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/crossout')"
  },

  // ???/?? ??
  "slots_panel": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "text_edit_control": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_editbox_enabled": true
  },

  // ???/?? ??
  "inventory_content/scrolling_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image",
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "generic_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "anvil_panel/bg": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "header_and_content_stack_panel/header": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "header_and_content_stack_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header_pocket": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_single_title": true,
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "tile.anvil.name"
            }
          }
        ]
      }
    ]
  }
}

beacon_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: beacon_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "beacon",

  // ???/?? ??
  "beacon_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "beacon_panel/root_panel/common_panel": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 38px", "100% - 3px" ]
  },

  // ???/?? ??
  "beacon_panel/root_panel/beacon_inventory": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  }
}

beacon_screen_pocket.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: beacon_screen_pocket.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "beacon_pocket",

  // ???/?? ??
  "beacon_contents_panel": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "inventory_content/scrolling_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image",
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "generic_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "beacon_panel/bg": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "header_and_content_stack_panel/header": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "header_and_content_stack_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header_pocket": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_single_title": true,
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "tile.anvil.name"
            }
          }
        ]
      }
    ]
  }
}

book_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: book_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "book",

  // ???/?? ??
  "book_buttons_panel/sign_export_buttons/export_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_form_fitting_button"
  },

  // ???/?? ??
  "cover_buttons_stack_panel_holder/cover_buttons_stack_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "maximized_input_button_panel": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ 0, 20 ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "maximized_input_button@rainbowpieui_book.maximized_input_toggle_base": {
                    // 오버라이드 가능한 변수
                    "$button_image_size": [ "100%", "100%" ],
                    // 가로/세로 크기
                    "size": [ "100%y", 18 ],
                    // 기준점에서 이동하는 거리
                    "offset": [ 12, 0 ],
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "top_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "top_middle",
                    // 오버라이드 가능한 변수
                    "$toggle_group_forced_index": 1000,
                    // 오버라이드 가능한 변수
                    "$toggle_view_binding_name": "maximized_input"
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "cover_buttons_stack_panel_holder/cover_buttons_stack_panel/finalize_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_form_fitting_button"
  },

  // ???/?? ??
  "cover_buttons_stack_panel_holder/cover_buttons_stack_panel/cancel_sign_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_form_fitting_button"
  },

  // ???/?? ??
  "book_buttons_panel/sign_export_buttons/sign_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_form_fitting_button"
  },

  // ???/?? ??
  "author_text_box": {
    // 오버라이드 가능한 변수
    "$place_holder_text_font_type": "$rainbowpie_ui_theme_global_font_name",
    // 오버라이드 가능한 변수
    "$place_holder_text_backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "title_text_box": {
    // 오버라이드 가능한 변수
    "$place_holder_text_font_type": "$rainbowpie_ui_theme_global_font_name",
    // 오버라이드 가능한 변수
    "$place_holder_text_backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "warning_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "author_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "title_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "page_number_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "header": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "page_text_edit": {
    // 오버라이드 가능한 변수
    "$place_holder_text_font_type": "$rainbowpie_ui_theme_global_font_name",
    // 오버라이드 가능한 변수
    "$place_holder_text_backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // "base_button/hover": {
  //   "controls": [
  //     {
  //       "hover_text@common.hover_text": {
  //         "layer": 30,
  //         "property_bag": {
  //           "#hover_text": "base_button"
  //         }
  //       }
  //     }
  //   ]
  // },

  // "page_content_panel/edit_page": {
  //   "ignored": true
  // },

  // "page_buttons_panel": {
  //   "modifications": [
  //     {
  //       "array_name": "bindings",
  //       "operation": "remove",
  //       "where": {
  //         "binding_name_override": "#visible"
  //       }
  //     }
  //   ]
  // },

  "book_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "book",
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_book.book_screen_content",
    // ?? ??
    "force_render_below": true,
    // ?? ??
    "close_on_player_hurt": false
  }
}

brewing_stand_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: brewing_stand_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "brewing_stand",

  // ???/?? ??
  "brewing_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "brewing_pipes": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/brewing_pipes')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "brewing_fuel_pipes": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/brewing_fuel_pipes')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // "bottle_empty_image": {
  //   "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/bottle_empty')",
  //   "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
  //   "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  // },

  // "fuel_empty_image": {
  //   "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/brewing_fuel_empty')",
  //   "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
  //   "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  // },

  "bubbles_empty_image": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/bubbles_empty')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "bubbles_full_image": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/bubbles_full')"
  },

  // ???/?? ??
  "brewing_arrow_empty_image": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/brewing_arrow_empty')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "brewing_arrow_full_image": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/brewing_arrow_full')"
  },

  // ???/?? ??
  "brewing_fuel_bar_empty_image": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/brewing_fuel_bar_empty')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "brewing_fuel_bar_full_image": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/brewing_fuel_bar_full')"
  },

  // ???/?? ??
  "brewing_panel_top_half": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 16 ]
  },

  // ???/?? ??
  "brewing_panel_top_half/brewing_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "brewing_stand_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "brewing_stand_root_panel@rainbowpieui_brewing_stand.brewing_stand_root_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_84df7492)"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "brewing_stand_panel/root_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492"
  },

  // ???/?? ??
  "brewing_stand_panel/root_panel/common_panel": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 8px", "100% - 25px" ]
  },

  // ???/?? ??
  "brewing_stand_panel/root_panel/furnace_screen_inventory": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "$container_title",
              // 기준점에서 이동하는 거리
              "offset": [ 0, 0 ]
            }
          }
        ]
      }
    ]
  }
}

brewing_stand_screen_pocket.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: brewing_stand_screen_pocket.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "brewing_stand_pocket",

  // ???/?? ??
  "slots_panel/brewing_pipes": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/brewing_pipes_large')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "slots_panel/brewing_arrow_panel/brewing_arrow_empty_image": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/brewing_arrow_large_empty')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "slots_panel/brewing_arrow_panel/brewing_arrow_full_image": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/brewing_arrow_large_full')"
  },

  // ???/?? ??
  "slots_panel": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "inventory_content/scrolling_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image",
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "generic_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "brewing_stand_panel/bg": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "header_and_content_stack_panel/header": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "header_and_content_stack_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header_pocket": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_single_title": true,
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "$container_title"
            }
          }
        ]
      }
    ]
  }
}

cartography_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: cartography_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "cartography",

  // ???/?? ??
  "cartography_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "maximized_input_dialog_panel@rainbowpieui_cartography.maximized_input_dialog_panel": {}
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "text_box_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "maximized_input_button_panel": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ "100%", 0 ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "maximized_input_button@rainbowpieui_cartography.maximized_input_toggle_base": {
                    // 오버라이드 가능한 변수
                    "$button_image_size": [ "100% - 1px", "100% - 1px" ],
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "bottom_right",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "bottom_right",
                    // 가로/세로 크기
                    "size": [ "100%y", "20px" ],
                    // 오버라이드 가능한 변수
                    "$toggle_group_forced_index": 1000,
                    // 오버라이드 가능한 변수
                    "$toggle_view_binding_name": "maximized_input",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                      {
                        // 계산/조건 결과를 연결
                        "binding_type": "view",
                        // ?? ??
                        "source_control_name": "maximized_input",
                        // 계산식/참조 값
                        "source_property_name": "(not #toggle_state)",
                        // 결과가 들어갈 속성
                        "target_property_name": "#enabled"
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "text_box_panel/text_edit_control": {
    // 가로/세로 크기
    "size": [ "100% - 20px", 20 ]
  },

  // ???/?? ??
  "arrow_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "plus_sign_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/anvil-plus')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "text_edit_control": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_editbox_enabled": true,
    // 오버라이드 가능한 변수
    "$edit_box_indent_size": [ "100% - 2px", "100% - 1px" ]
  },

  // ???/?? ??
  "output_description_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "text_box_panel/map_name_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "title_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "cartography_panel/root_panel/tab_close_and_help_button": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "top_half_panel": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 18 ]
  },

  // ???/?? ??
  "top_half_panel/title_panel/title_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "cartography_panel/root_panel/common_panel": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 8px", "100% - 28px" ]
  },

  // ???/?? ??
  "cartography_panel/root_panel/cartography_screen_inventory": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_flag_84df7492",
            // 오버라이드 가능한 변수
            "$background_images": "rainbowpie_ui_inventory_and_container.cell_panel"
          }
        ]
      },
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "tile.cartography_table.name"
            }
          }
        ]
      }
    ]
  }
}

cartography_screen_pocket.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: cartography_screen_pocket.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "cartography_pocket",

  // ???/?? ??
  "cartography_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "maximized_input_dialog_panel@rainbowpieui_cartography.maximized_input_dialog_panel": {}
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "right_navigation_tabs/pocket_tab_close_and_help_button": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "right_navigation_tabs": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "close_panel": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ "100%", 33 ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "close_background@rainbowpie_ui_inventory.header_background": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "right_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "right_middle",
                    // 가로/세로 크기
                    "size": [ "100% - 4px", 33 ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "close_button@rainbowpie_ui_common.close_button": {
                          // 오버라이드 가능한 변수
                          "$rainbowpie_ui_theme_closebutton_default_color": "$rainbowpie_ui_theme_inventory_header_title_color",
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 10,
                          // 가로/세로 크기
                          "size": [ "100%", "100%" ],
                          // 기준점에서 이동하는 거리
                          "offset": [ 0, 0 ],
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "center",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "center"
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "vertical_arrow_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_down_small')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "cartography_content_stack_panel": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "inventory_scroll_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image",
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "inventory_panel/inventory_title_label_centerer/inventory_title_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "right_tab_cartography": {
    // 오버라이드 가능한 변수
    "$checked_bar_anchor": "right",
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$tab_image_size": [ "100% - 4px", "100%" ],
    // 오버라이드 가능한 변수
    "$tab_image_anchor": "right_middle",
    // 오버라이드 가능한 변수
    "$tab_content_size": [ "100% - 4px", "100% - 8px" ],
    // 오버라이드 가능한 변수
    "$tab_content_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$tab_content_anchor": "right_middle",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": "$rainbowpie_ui_theme_inventory_header_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_alpha": 0.6
  },

  // ???/?? ??
  "right_panel/content/bg": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background"
  },

  // ???/?? ??
  "left_tab_inventory": {
    // 오버라이드 가능한 변수
    "$checked_bar_anchor": "left",
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$tab_image_size": [ "100% - 4px", "100%" ],
    // 오버라이드 가능한 변수
    "$tab_image_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$tab_content_size": [ "100% - 4px", "100% - 8px" ],
    // 오버라이드 가능한 변수
    "$tab_content_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$tab_content_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": "$rainbowpie_ui_theme_inventory_header_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_alpha": 0.6
  },

  // ???/?? ??
  "left_panel/content/bg": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background"
  }
}

chat_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: chat_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "chat",

  // ???/?? ??
  "messages_stack_panel": {
    // 목록 아이템을 자동으로 생성
    "factory": {
      // ?? ??
      "name": "messages_factory",
      // ?? ?? ?
      "max_children_size": 100,
      // 팩토리 템플릿 매핑
      "control_ids": {
        // ?? ??
        "chat_screen_messages": "chat_screen_messages@chat.message_tts_wrapper"
      },
      // ???/?? ??
      "factory_variables": [
        "$rainbowpie_ui_theme_global_font_name",
        "$rainbowpie_ui_theme_global_font_backup_name",
        "$rainbowpie_ui_flag_chat_use_ui_font",
        "$rainbowpie_ui_flag_chatui_default_font"
      ]
    }
  },

  // ???/?? ??
  "chat_screen_content/autocomplete_commands_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "chat_screen_content/messages_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "chat_screen_content/popup_factory": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_this_control_ids": {
      // ?? ??
      "chat_setting_popup": "@chat_settings.chat_settings_popup"
    },
    // 팩토리 템플릿 매핑
    "control_ids": "$rainbowpie_localui_this_control_ids",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_b3c44822",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_this_control_ids": {
          // ?? ??
          "chat_setting_popup": "@rainbowpieui_chat.chat_settings_panel"
        }
      }
    ]
  },

  // ???/?? ??
  "auto_complete_panel_contents_with_item/auto_complete_item_renderer": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ]
  },

  // ???/?? ??
  "auto_complete_panel_contents_with_item/text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "auto_complete_panel_contents_with_item/autocomplete_button": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "remove",
        // ???/?? ??
        "where": {
          // 가져올 값 이름
          "binding_name": "#is_autocomplete_suggestion"
        }
      },
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 가져올 값 이름
            "binding_name": "(not #chat_visible)",
            // 가져온 값을 다른 속성으로 연결
            "binding_name_override": "#visible"
          },
          {
            // 목록 데이터를 반복 연결
            "binding_type": "collection",
            // 가져올 값 이름
            "binding_name": "#auto_complete_text",
            // 목록 이름
            "binding_collection_name": "auto_complete"
          },
          {
            // 가져올 값 이름
            "binding_name": "#host_teleport_main_visible"
          },
          {
            // 가져올 값 이름
            "binding_name": "#host_time_visible"
          },
          {
            // 가져올 값 이름
            "binding_name": "#host_weather_visible"
          },
          {
            // 계산/조건 결과를 연결
            "binding_type": "view",
            // 계산식/참조 값
            "source_property_name": "(not (#auto_complete_text = '') and not #host_teleport_main_visible and not #host_time_visible and not #host_weather_visible)",
            // 결과가 들어갈 속성
            "target_property_name": "#enabled"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "chat_background": {
    // 사용할 이미지 경로
    "texture": ""
  },

  // ???/?? ??
  "message_tts_wrapper": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_flag_a012c161",
            // 오버라이드 가능한 변수
            "$tts_label_panel": "rainbowpieui_chat.editable_message_text"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "messages_text": {
    // 애니메이션 목록
    "anims": ["@rainbowpieui_chat.chat_message_panel_size_animation"],
    // ?? ????
    "clips_children": true,
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_flag_chatui_default_font",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_theme_global_font_name": "default",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_theme_global_font_backup_name": "default"
          }
        ]
      },
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "replace",
        // ???/?? ??
        "where": {
          // 가져올 값 이름
          "binding_name": "#chat_visible",
          // 가져온 값을 다른 속성으로 연결
          "binding_name_override": "#visible"
        },
        // ??? ?
        "value": {
          // 가져올 값 이름
          "binding_name": "#chat_visible"
        }
      },
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // 가져올 값 이름
            "binding_name": "#host_main_visible"
          },
          {
            // 계산/조건 결과를 연결
            "binding_type": "view",
            // 계산식/참조 값
            "source_property_name": "(#chat_visible and (not #host_main_visible))",
            // 결과가 들어갈 속성
            "target_property_name": "#visible"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "messages_text/text": {
    // ?? ??
    "enable_profanity_filter": "$rainbowpie_ui_flag_chat_message_profanity_filter",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 애니메이션 목록
    "anims": ["@rainbowpieui_chat.chat_message_panel_animation"],
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_flag_chat_use_ui_font and ($chat_font_type = 'default'))",
            // 오버라이드 가능한 변수
            "$chat_font_type": "$rainbowpie_ui_theme_global_font_name"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "messages_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_bar_left_padding_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_right_padding_size": [ 1, 0 ],
    // 가로/세로 크기
    "size": [ "100%-2px", "100%-47px" ]
  },

  // ???/?? ??
  "send_button": {
    // 오버라이드 가능한 변수
    "$button_size_override": [ "100%c + 1px", "100%c" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_form_fitting_button"
  },

  // ???/?? ??
  "text_edit_box": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_editbox_enabled": true,
    // 오버라이드 가능한 변수
    "$edit_box_indent_size": [ "100% - 1px", "100% - 2px" ],
    // 오버라이드 가능한 변수
    "$enable_profanity_filter": "$rainbowpie_ui_flag_input_enable_profanity_filter"
  },

  // ???/?? ??
  "keyboard_image": {
    // 사용할 이미지 경로
    "texture": "textures/ui/chat_keyboard_hover",
    // ?? (R,G,B,A)
    "color": "$text_color"
  },

  // ???/?? ??
  "small_button": {
    // 가로/세로 크기
    "size": [ 26, 27 ],
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100% - 1px", "100% - 2px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "chat_screen_content": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "messages_stack_panel": {
              // 줄맞춤 컨테이너: 가로/세로로 자동 배치
              "type": "stack_panel",
              // 쌓는 방향(가로/세로)
              "orientation": "horizontal",
              // 가로/세로 크기
              "size": [ "100%", "100%" ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // ???/?? ??
                  "messages_parent_panel": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [ "fill", "100%" ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "messages_panel@chat.messages_scrolling_panel": {}
                      },
                      { "autocomplete_commands_panel@chat.commands_panel": { "layer": 3 } }
                    ]
                  }
                },
                {
                  // ???/?? ??
                  "chat_messages_padding": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [ 150, "100%" ],
                    // 완전히 제거(공간도 없음)
                    "ignored": "(not $rainbowpie_ui_feature_command_chat)",
                    // 보이기/숨기기(공간 유지)
                    "visible": false,
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                      {
                        // 계산/조건 결과를 연결
                        "binding_type": "view",
                        // ?? ??
                        "source_control_name": "open_second_chat",
                        // 계산식/참조 값
                        "source_property_name": "(#toggle_state)",
                        // 결과가 들어갈 속성
                        "target_property_name": "#visible"
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "chat_settings_animation_panel@rainbowpieui_chat.chat_settings_animation_panel": {}
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "maximized_input_dialog_panel@rainbowpieui_chat.maximized_input_dialog_panel": {}
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "chat_messages_and_playerlist@rainbowpieui_chat.chat_messages_and_playerlist": {}
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "rainbowpie_chat_header@rainbowpieui_chat.chat_header": {}
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "mask_layer@mintui_background.background_mask": {
              // 오버라이드 가능한 변수
              "$background_offset": [ 0, "100% - 27px" ],
              // 오버라이드 가능한 변수
              "$background_children_offset":  [ 0, "-100% + 27px" ],
              // 오버라이드 가능한 변수
              "$background_layer": -3,
              // 오버라이드 가능한 변수
              "$background_anims": [
                "@rainbowpieui_chat.chat_bottom_background_back_animation1",
                "@rainbowpieui_chat.chat_bottom_background_back_animation_pop1",
                "@rainbowpieui_chat.chat_bottom_background_animation1",
                "@rainbowpieui_chat.chat_bottom_background_animation_pop1"
              ],
              // 오버라이드 가능한 변수
              "$background_children_anims": [
                "@rainbowpieui_chat.chat_bottom_background_back_animation2",
                "@rainbowpieui_chat.chat_bottom_background_back_animation_pop2",
                "@rainbowpieui_chat.chat_bottom_background_animation2",
                "@rainbowpieui_chat.chat_bottom_background_animation_pop2"
              ]
            }
          },
          {
            // ???/?? ??
            "chat_bottom_panel_background": {
              // 이미지 표시
              "type": "image",
              // 사용할 이미지 경로
              "texture": "textures/ui/White",
              // 기준점(어디에서 시작할지)
              "anchor_from": "bottom_middle",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "bottom_middle",
              // 가로/세로 크기
              "size": [ "100%", 27 ],
              // ?? (R,G,B,A)
              "color": "$rainbowpie_ui_theme_text_background_color",
              // ???
              "alpha": "$rainbowpie_ui_theme_text_background_alpha",
              // ????? ?? ?
              "animation_reset_name": "screen_animation_reset",
              // 애니메이션 목록
              "anims": [
                "@rainbowpieui_chat.chat_bottom_panel_back_animation",
                "@rainbowpieui_chat.chat_bottom_panel_back_animation_pop",
                "@rainbowpieui_chat.chat_bottom_panel_animation",
                "@rainbowpieui_chat.chat_bottom_panel_animation_pop"
              ],
              // 겹치는 순서(숫자 클수록 위)
              "layer": 1
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "chat_bottom_panel/host_main_button": {
    // 가로/세로 크기
    "size": [ 26, 27 ],
    // 오버라이드 가능한 변수
    "$button_size_override": [ "100%c + 1px", "100%c" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_form_fitting_button"
  },

  // ???/?? ??
  "chat_bottom_panel": {
    // 가로/세로 크기
    "size": [ "100% - 1px", 27 ],
    // ?? ?? ?
    "min_size": [ "100% - 1px", 27 ],
    // ????? ?? ?
    "animation_reset_name": "screen_animation_reset",
    // 애니메이션 목록
    "anims": [
      "@rainbowpieui_chat.chat_bottom_panel_back_animation",
      "@rainbowpieui_chat.chat_bottom_panel_back_animation_pop",
      "@rainbowpieui_chat.chat_bottom_panel_animation",
      "@rainbowpieui_chat.chat_bottom_panel_animation_pop"
    ],
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "keyboard_button",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "autocompleteback@common_buttons.light_text_button": {
              // 오버라이드 가능한 변수
              "$button_image_size": [ "100% - 1px", "100% - 2px" ],
              // 오버라이드 가능한 변수
              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
              // 오버라이드 가능한 변수
              "$button_text": "TAB▲",
              // 오버라이드 가능한 변수
              "$pressed_button_name": "button.chat_autocomplete_back",
              // 가로/세로 크기
              "size": [ 26, 27 ],
              // 완전히 제거(공간도 없음)
              "ignored": "(not $touch)"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "autocomplete@common_buttons.light_text_button": {
              // 오버라이드 가능한 변수
              "$button_image_size": [ "100% - 1px", "100% - 2px" ],
              // 오버라이드 가능한 변수
              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
              // 오버라이드 가능한 변수
              "$button_text": "TAB▼",
              // 오버라이드 가능한 변수
              "$pressed_button_name": "button.chat_autocomplete",
              // 가로/세로 크기
              "size": [ 26, 27 ],
              // 완전히 제거(공간도 없음)
              "ignored": "(not $touch)"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "previous@common_buttons.light_text_button": {
              // 오버라이드 가능한 변수
              "$button_image_size": [ "100% - 1px", "100% - 2px" ],
              // 오버라이드 가능한 변수
              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
              // 오버라이드 가능한 변수
              "$button_text": "▲",
              // 오버라이드 가능한 변수
              "$pressed_button_name": "button.chat_previous_message",
              // 가로/세로 크기
              "size": [ 26, 27 ],
              // 완전히 제거(공간도 없음)
              "ignored": "(not $touch)"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "next@common_buttons.light_text_button": {
              // 오버라이드 가능한 변수
              "$button_image_size": [ "100% - 1px", "100% - 2px" ],
              // 오버라이드 가능한 변수
              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
              // 오버라이드 가능한 변수
              "$button_text": "▼",
              // 오버라이드 가능한 변수
              "$pressed_button_name": "button.chat_next_message",
              // 가로/세로 크기
              "size": [ 26, 27 ],
              // 완전히 제거(공간도 없음)
              "ignored": "(not $touch)"
            }
          }
        ]
      },
      {
        // ??? ???
        "control_name": "text_box",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "maximized_input_button@rainbowpieui_chat.maximized_input_toggle_base": {
              // 오버라이드 가능한 변수
              "$button_image_size": [ "100% - 1px", "100% - 2px" ],
              // 가로/세로 크기
              "size": [ 26, 27 ],
              // 오버라이드 가능한 변수
              "$toggle_group_forced_index": 1000,
              // 오버라이드 가능한 변수
              "$toggle_view_binding_name": "maximized_input",
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 계산/조건 결과를 연결
                  "binding_type": "view",
                  // ?? ??
                  "source_control_name": "maximized_input",
                  // 계산식/참조 값
                  "source_property_name": "(not #toggle_state)",
                  // 결과가 들어갈 속성
                  "target_property_name": "#enabled"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "chat_header": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "chat_screen": {
    // ?? ??
    "close_on_player_hurt": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_watermark": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "chat",
    // 오버라이드 가능한 변수
    "$rainbowpie_ui_theme_global_background_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$screen_bg_content": "common.empty_panel"
  }
}

chat_settings_menu_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: chat_settings_menu_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "chat_settings",

  // ???/?? ??
  "typeface_dropdown_content/mojangles": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_flag_chat_use_ui_font",
            // 오버라이드 가능한 변수
            "$radio_label_text": "UI Font",
            // 오버라이드 가능한 변수
            "$radio_label_font_type": "$rainbowpie_ui_theme_global_font_name"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "colors_dropdown_base": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_rainbowpiebutton_enabled": true,
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_688c902f",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_dropdown_content_item_size": [ 38, "default" ],
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_dropdown_show_button": true,
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_dropdown_enabled": true,
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_dropdown_content_panel": "rainbowpieui_chat.chat_color_dropdown_content",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_dropdown_content": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "0@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
              // ?? ??
              "collection_index": 0,
              // 오버라이드 가능한 변수
              "$toggle_state_binding_name": "('#' + $color_prefix + '_0'",
              // 오버라이드 가능한 변수
              "$focus_id": "($color_prefix + 'option_0')",
              // 오버라이드 가능한 변수
              "$focus_override_up": "($color_prefix + 'option_6')",
              // 오버라이드 가능한 변수
              "$focus_override_down": "($color_prefix + 'option_1')"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "1@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
              // ?? ??
              "collection_index": 1,
              // 오버라이드 가능한 변수
              "$toggle_state_binding_name": "('#' + $color_prefix + '_1'",
              // 오버라이드 가능한 변수
              "$focus_id": "($color_prefix + 'option_1')",
              // 오버라이드 가능한 변수
              "$focus_override_up": "($color_prefix + 'option_0')",
              // 오버라이드 가능한 변수
              "$focus_override_down": "($color_prefix + 'option_2')"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "2@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
              // ?? ??
              "collection_index": 2,
              // 오버라이드 가능한 변수
              "$toggle_state_binding_name": "('#' + $color_prefix + '_2'",
              // 오버라이드 가능한 변수
              "$focus_id": "($color_prefix + 'option_2')",
              // 오버라이드 가능한 변수
              "$focus_override_up": "($color_prefix + 'option_1')",
              // 오버라이드 가능한 변수
              "$focus_override_down": "($color_prefix + 'option_3')"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "3@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
              // ?? ??
              "collection_index": 3,
              // 오버라이드 가능한 변수
              "$toggle_state_binding_name": "('#' + $color_prefix + '_3')",
              // 오버라이드 가능한 변수
              "$focus_id": "($color_prefix + 'option_3')",
              // 오버라이드 가능한 변수
              "$focus_override_up": "($color_prefix + 'option_2')",
              // 오버라이드 가능한 변수
              "$focus_override_down": "($color_prefix + 'option_4')"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "4@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
              // ?? ??
              "collection_index": 4,
              // 오버라이드 가능한 변수
              "$toggle_state_binding_name": "('#' + $color_prefix + '_4'",
              // 오버라이드 가능한 변수
              "$focus_id": "($color_prefix + 'option_4')",
              // 오버라이드 가능한 변수
              "$focus_override_up": "($color_prefix + 'option_3')",
              // 오버라이드 가능한 변수
              "$focus_override_down": "($color_prefix + 'option_5')"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "5@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
              // ?? ??
              "collection_index": 5,
              // 오버라이드 가능한 변수
              "$toggle_state_binding_name": "('#' + $color_prefix + '_5'",
              // 오버라이드 가능한 변수
              "$focus_id": "($color_prefix + 'option_5')",
              // 오버라이드 가능한 변수
              "$focus_override_up": "($color_prefix + 'option_4')",
              // 오버라이드 가능한 변수
              "$focus_override_down": "($color_prefix + 'option_6')"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "6@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
              // ?? ??
              "collection_index": 6,
              // 오버라이드 가능한 변수
              "$toggle_state_binding_name": "('#' + $color_prefix + '_6'",
              // 오버라이드 가능한 변수
              "$focus_id": "($color_prefix + 'option_6')",
              // 오버라이드 가능한 변수
              "$focus_override_up": "($color_prefix + 'option_5')",
              // 오버라이드 가능한 변수
              "$focus_override_down": "($color_prefix + 'option_0')"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "reset_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ]
  },

  // ???/?? ??
  "typeface_dropdown": {
    // 오버라이드 가능한 변수
    "$option_dropdown_size": [ "100%", 20 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "mojangles@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#typeface_radio_mojangles",
          // 오버라이드 가능한 변수
          "$radio_label_text": "typeface.mojangles",
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            {
              // 이 조건이 맞으면 적용
              "requires": "$rainbowpie_ui_flag_chat_use_ui_font",
              // 오버라이드 가능한 변수
              "$radio_label_text": "UI Font"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "noto_sans@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#typeface_radio_notoSans",
          // 오버라이드 가능한 변수
          "$radio_label_text": "typeface.notoSans",
          // 오버라이드 가능한 변수
          "$radio_label_font_type": "smooth"
        }
      }
    ]
  },

  // ???/?? ??
  "line_break/line_break_image": {
    // ?? (R,G,B,A)
    "color": [ 1.0, 1.0, 1.0 ],
    // ???
    "alpha": 0.4
  },

  // ???/?? ??
  "chat_settings_scrolling_content": {
    // 가로/세로 크기
    "size": [ "100%", "100%c + 4px" ]
  },

  // ???/?? ??
  "chat_settings_scrolling_content/chat_settings_content_area": {
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center"
  }
}

chest_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: chest_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "chest",

  // ???/?? ??
  "small_chest_screen": {
    // 오버라이드 가능한 변수
    "$is_ender_chest": false,
    // 오버라이드 가능한 변수
    "$is_shulker_box": false,
    // 오버라이드 가능한 변수
    "$is_barrel": false
  },

  // ???/?? ??
  "ender_chest_screen": {
    // 오버라이드 가능한 변수
    "$is_ender_chest": true,
    // 오버라이드 가능한 변수
    "$is_shulker_box": false,
    // 오버라이드 가능한 변수
    "$is_barrel": false
  },

  // ???/?? ??
  "shulker_box_screen": {
    // 오버라이드 가능한 변수
    "$is_shulker_box": true
  },

  // ???/?? ??
  "barrel_screen": {
    // 오버라이드 가능한 변수
    "$is_barrel": true
  },

  // ???/?? ??
  "chest_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "large_chest_panel_top_half": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 19 ]
  },

  // ???/?? ??
  "large_chest_panel_top_half/chest_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "large_chest_panel/root_panel/common_panel": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 8px", "100% - 28px" ]
  },

  // ???/?? ??
  "large_chest_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "large_chest_root_panel@rainbowpieui_chest.large_chest_root_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_84df7492)"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "large_chest_panel/root_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492"
  },

  // ???/?? ??
  "large_chest_panel/root_panel/chest_panel": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "chest_fastpick@rainbowpie_module_chest_fastpick.chest_fastpick": {
              // 오버라이드 가능한 변수
              "$large_chest": true
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "$container_title"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "live_player_renderer@rainbowpie_ui_inventory.live_player_renderer": {}
          }
        ]
      }
    ]
  },

  // small_chest_panel

  "small_chest_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "small_chest_root_panel@rainbowpieui_chest.small_chest_root_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_84df7492)"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "small_chest_panel/root_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492"
  },

  // ???/?? ??
  "small_chest_panel_top_half": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 20 ]
  },

  // ???/?? ??
  "small_chest_panel_top_half/chest_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "small_chest_panel/root_panel/common_panel": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 8px", "100% - 28px" ]
  },

  // ???/?? ??
  "small_chest_panel/root_panel/chest_panel": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "chest_fastpick@rainbowpie_module_chest_fastpick.chest_fastpick": {}
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "$container_title"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "live_player_renderer@rainbowpie_ui_inventory.live_player_renderer": {}
          }
        ]
      }
    ]
  }
}

command_block_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: command_block_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "command_block",

  // ???/?? ??
  "command_block_text_edit_box": {
    // 오버라이드 가능한 변수
    "$enable_profanity_filter": "$rainbowpie_ui_flag_input_enable_profanity_filter"
  },

  // ???/?? ??
  "left_scroll_panel_content/content_stack_panel/offset2/hover_note_text": {
    // 오버라이드 가능한 변수
    "$enable_profanity_filter": "$rainbowpie_ui_flag_input_enable_profanity_filter"
  },

  // ???/?? ??
  "plus_icon": {
    // 가로/세로 크기
    "size": [ 18, 18 ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/global/maximize_icon')"
  },

  // ???/?? ??
  "right_scroll_panel_content": {
    // 가로/세로 크기
    "size": [ "100% - 2px", "100%c" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "spacer_bottom": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ 0, 3 ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "previous_command_block_info_stack/start_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "previous_command_block_info_stack/start_label_dynamic_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "right_scroll_panel_content/command_block_previous_output_panel/command_output_text_centering_panel/command_output_text": {
    // 가로/세로 크기
    "size": [ "100% - 4px", 60 ]
  },

  // ???/?? ??
  "right_scroll_panel_content/command_block_previous_output_panel/previous_output_label_stack_centering_panel/previous_output_label_stack/option_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "command_block_helper_stack/text_": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "right_scroll_panel_content/command_block_commands_panel/centering_panel1/command_block_commands_panel/paste_button": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "right_scroll_panel_content/command_block_commands_panel/centering_panel1/command_block_commands_panel/plus_button": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "right_scroll_panel_content/command_block_commands_panel/centering_panel1/command_block_commands_panel": {
    // 가로/세로 크기
    "size": [ "100%", 30 ],
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "paste_button",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "spacer": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ 0.5, 0 ]
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "paste_button_rainbowpie@rainbowpieui_command_block.paste_button": {
              // 겹치는 순서(숫자 클수록 위)
              "layer": 2
            }
          }
        ]
      },
      {
        // ??? ???
        "control_name": "plus_button",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "plus_button_rainbowpie@rainbowpieui_command_block.plus_button": {
              // 겹치는 순서(숫자 클수록 위)
              "layer": 2
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "right_scroll_panel_content/command_block_commands_panel/centering_panel/option_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "left_scroll_panel_content/content_stack_panel/option_label_tick_delay": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "left_scroll_panel_content/content_stack_panel/option_label_execute_on_first_tick": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "left_scroll_panel_content/content_stack_panel/offset8": {
    // 가로/세로 크기
    "size": [ "100%", 2 ]
  },

  // ???/?? ??
  "cancel_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "block_type_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "command_impulse_mode@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#command_impulse_mode",
          // 오버라이드 가능한 변수
          "$radio_label_text": "commandBlockScreen.blockType.impulse"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "command_chain_mode@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#command_chain_mode",
          // 오버라이드 가능한 변수
          "$radio_label_text": "commandBlockScreen.blockType.chain"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "command_repeat_mode@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#command_repeat_mode",
          // 오버라이드 가능한 변수
          "$radio_label_text": "commandBlockScreen.blockType.repeat"
        }
      }
    ]
  },

  // ???/?? ??
  "condition_mode_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "command_conditional_mode@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#command_conditional_mode",
          // 오버라이드 가능한 변수
          "$radio_label_text": "commandBlockScreen.condition.conditional"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "command_unconditional_mode@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#command_unconditional_mode",
          // 오버라이드 가능한 변수
          "$radio_label_text": "commandBlockScreen.condition.unconditional"
        }
      }
    ]
  },

  // ???/?? ??
  "redstone_mode_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "command_always_on_mode@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#command_always_on_mode",
          // 오버라이드 가능한 변수
          "$radio_label_text": "commandBlockScreen.redstone.always_on"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "command_needs_redstone_mode@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#command_needs_redstone_mode",
          // 오버라이드 가능한 변수
          "$radio_label_text": "commandBlockScreen.redstone.needs_redstone"
        }
      }
    ]
  },

  // ???/?? ??
  "right_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$scroll_bar_left_padding_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_right_padding_size": [ 1, 0 ]
  },

  // ???/?? ??
  "left_scroll_panel_content": {
    // 가로/세로 크기
    "size": [ "100% - 3px", "100%c" ],
    // 기준점에서 이동하는 거리
    "offset": [ 2, 0 ]
  },

  // ???/?? ??
  "left_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$scroll_bar_left_padding_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_right_padding_size": [ 1, 0 ]
  },

  // ???/?? ??
  "command_block_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "command_block",
    // ?? ??
    "force_render_below": true,
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_command_block.command_block_screen_content"
  }
}

content_log.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: content_log.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "content_log",

  // ???/?? ??
  "content_log_panel/stack_panel": {
    // 목록 아이템을 자동으로 생성
    "factory": {
      // ?? ??
      "name": "content_log_item_factory",
      // ?? ?? ?
      "max_children_size": 50,
      // 팩토리 템플릿 매핑
      "control_ids": {
        // ?? ??
        "content_log_item": "content_log_item@content_log.content_log_grid_item"
      },
      // ???/?? ??
      "factory_variables": [
        "$rainbowpie_ui_theme_global_font_name",
        "$rainbowpie_ui_theme_global_font_backup_name"
      ]
    }
  },

  // ???/?? ??
  "content_log_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "anim_content_log_bg_alpha": {
    // 시작 값
    "from": 0.3
  },

  // ???/?? ??
  "content_log_grid_item/content_log_background": {
    // ???
    "alpha": 0.3,
    // 애니메이션 목록
    "anims": [
      "@content_log.anim_content_log_bg_wait",
      "@rainbowpieui_content_log.anim_content_log_offset"
    ]
  }
}

content_log_history_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: content_log_history_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "content_log_history",

  // ???/?? ??
  "content_log_message": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "clipboard_icon_wrapper/stack_panel/label_panel/label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_localui_button_text_color"
  },

  // ???/?? ??
  "clear_icon_wrapper/stack_panel/label_panel/label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_localui_button_text_color"
  },

  // ???/?? ??
  "horizontal_button_stack_panel/clipboard_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // 가로/세로 크기
    "size": [ "25%", "100%" ]
  },

  // ???/?? ??
  "horizontal_button_stack_panel/clear_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // 가로/세로 크기
    "size": [ "25%", "100%" ]
  },

  // ???/?? ??
  "messages_stack_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content_anchor_from": "bottom_right",
    // 오버라이드 가능한 변수
    "$scrolling_content_anchor_to": "bottom_right",
    // 가로/세로 크기
    "size": [ "100% - 4px", "default" ],
    // 목록 아이템을 자동으로 생성
    "factory": {
      // ?? ??
      "name": "messages_factory",
      // ??? ???
      "control_name": "content_log_message@content_log_history.content_log_message_panel",
      // ???/?? ??
      "factory_variables": [
        "$rainbowpie_ui_theme_global_font_name",
        "$rainbowpie_ui_theme_global_font_backup_name"
      ]
    }
  },

  // ???/?? ??
  "content_log_history_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "content_log_history",
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_content_log_history.content_log_history_panel"
  }
}

create_world_upsell_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: create_world_upsell_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "create_world_upsell"
}

credits_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: credits_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "credits",

  // ???/?? ??
  "skip_panel": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "rainbowpieui_skip_panel@rainbowpieui_credits.rainbowpieui_skip_panel": {}
      }
    ]
  },

  // ???/?? ??
  "fade_in_image": {
    // 사용할 이미지 경로
    "texture": ""
  },

  // ???/?? ??
  "credits_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "credits"
  }
}

death_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: death_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "death",

  // ???/?? ??
  "you_died_panel/you_died_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "death_reason_panel/death_reason_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "buttons_panel/respawn_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "remove",
        // ???/?? ??
        "where": {
          // 가져올 값 이름
          "binding_name": "#respawn_visible"
        }
      }
    ]
  },

  // ???/?? ??
  "buttons_panel/main_menu_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "remove",
        // ???/?? ??
        "where": {
          // 가져올 값 이름
          "binding_name": "#quit_visible"
        }
      }
    ]
  },

  // ???/?? ??
  "death_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "death"
  }
}

debug_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: debug_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "debug_screen",

  // ???/?? ??
  "debug_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_ignored": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "debug_screen"
  }
}

disconnect_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: disconnect_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "disconnect",

  // ???/?? ??
  "disconnect_screen_content": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          { "rainbowpie_title_panel@rainbowpieui_disconnect.title_panel": {} }
        ]
      }
    ]
  },

  // ???/?? ??
  "disconnect_screen_content/title_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_c48fd864"
  },

  // ???/?? ??
  "disconnect_text": {
    // "text": "disconnect_text"
  },

  // ???/?? ??
  "disconnect_title_text": {
    // "text": "disconnect_title_text"
  },

  // ???/?? ??
  "disconnect_screen_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? ??
    "text_alignment": "center"
  },

  // ???/?? ??
  "menu_button_template": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "open_account_setting_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "disconnect_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": "$rainbowpie_ui_flag_disconnect_ui_modified",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_disconnect_dialog_buttons": "rainbowpieui_disconnect.button_panel",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_blur": "(not $rainbowpie_ui_flag_d39385b8)",
    // 오버라이드 가능한 변수
    "$is_pregame": true,
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_disconnect.disconnect_screen_content"
  },

  // ???/?? ??
  "realms_disconnect_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_disconnect_dialog_buttons": "rainbowpieui_disconnect.realms_disconnect_button_panel"
  },

  // ???/?? ??
  "realms_warning_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_disconnect_dialog_buttons": "rainbowpieui_disconnect.realms_warning_button_panel"
  }
}

enchanting_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: enchanting_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "enchanting",

  // ???/?? ??
  "enchant_runes": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // 보여줄 글자
    "text": "#text",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 이름
        "binding_collection_name": "#enchant_buttons",
        // 가져올 값 이름
        "binding_name": "#hover_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#hover_text - '§o')",
        // 결과가 들어갈 속성
        "target_property_name": "#text"
      }
    ]
  },

  // ???/?? ??
  "unselectable_button": {
  },

  // ???/?? ??
  "dark_background": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_button_background_locked_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_button_background_locked_alpha"
  },

  // ???/?? ??
  "dark_background_with_hover_text": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_button_background_locked_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_button_background_hover_alpha"
  },

  // ???/?? ??
  "active_background": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_button_background_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_button_background_default_alpha"
  },

  // ???/?? ??
  "active_background_with_hover_text": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_button_background_hover_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_button_background_hover_alpha"
  },

  // ???/?? ??
  "enchanting_panel_top_half/grid_panel/indent": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "enchanting_panel_top_half/grid_panel/dust_panel": {
  },

  // ???/?? ??
  "enchanting_panel_top_half/grid_panel": {
  },

  // ???/?? ??
  "enchanting_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "enchanting_panel_top_half": {
    // 기준점에서 이동하는 거리
    "offset": [ 1, 15 ]
  },

  // ???/?? ??
  "enchanting_panel_top_half/enchanting_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "enchanting_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "enchanting_root_panel@rainbowpieui_enchanting.enchanting_root_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_84df7492)"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "enchanting_panel/root_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492"
  },

  // ???/?? ??
  "enchanting_panel/root_panel/common_panel": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 8px", "100% - 21px" ]
  },

  // ???/?? ??
  "enchanting_panel/root_panel/enchanting_screen_inventory": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "$container_title",
              // 기준점에서 이동하는 거리
              "offset": [ 0, -4 ]
            }
          }
        ]
      }
    ]
  }
}

enchanting_screen_pocket.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: enchanting_screen_pocket.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "enchanting_pocket",

  // ???/?? ??
  "enchanting_slots_panel": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "inventory_content/scrolling_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image",
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "generic_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "enchanting_panel/bg": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "header_and_content_stack_panel/header": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "header_and_content_stack_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header_pocket": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_single_title": true,
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "$container_title"
            }
          }
        ]
      }
    ]
  }
}

furnace_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: furnace_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "furnace",

  // ???/?? ??
  "furnace_screen": {
    // 오버라이드 가능한 변수
    "$is_blast_furnace": false,
    // 오버라이드 가능한 변수
    "$is_smoker": false,
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "($container_title = 'tile.blast_furnace.name')",
            // 오버라이드 가능한 변수
            "$is_blast_furnace": true
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($container_title = 'tile.smoker.name')",
            // 오버라이드 가능한 변수
            "$is_smoker": true
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "furnace_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "furnace_arrow_empty_image": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_inactive')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "furnace_arrow_full_image": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_active')"
  },

  // ???/?? ??
  "flame_empty_image": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/flame_empty_image')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "flame_full_image": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/flame_full_image')"
  },

  // ???/?? ??
  "furnace_panel_top_half": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 20 ]
  },

  // ???/?? ??
  "furnace_panel_top_half/furnace_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "furnace_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "furnace_root_panel@rainbowpieui_furnace.furnace_root_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_84df7492)"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "furnace_panel/root_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492"
  },

  // ???/?? ??
  "furnace_panel/root_panel/common_panel": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 8px", "100% - 27px" ]
  },

  // ???/?? ??
  "furnace_panel/root_panel/furnace_screen_inventory": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "$container_title",
              // 기준점에서 이동하는 거리
              "offset": [ 0, 2 ]
            }
          }
        ]
      }
    ]
  }
}

furnace_screen_pocket.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: furnace_screen_pocket.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "furnace_pocket",

  // ???/?? ??
  "furnace_content": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "inventory_content/scrolling_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image",
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "generic_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "furnace_panel/bg": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "header_and_content_stack_panel/header": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "header_and_content_stack_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header_pocket": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_single_title": true,
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "$container_title"
            }
          }
        ]
      }
    ]
  }
}

gameplay_common.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: gameplay_common.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "gameplay"
}

gamma_calibration_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: gamma_calibration_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "gamma_calibration",

  // ???/?? ??
  "image_panel/centering_panel/image_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "message_panel/message_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "calibration_slider/centering_panel/slider_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "calibration_slider/slider_control/slider": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_sliderbar_enabled": true
  },

  // ???/?? ??
  "continue_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color": [ 0.196078431372549, 0.6588235294117647, 0.3215686274509804 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_color": [ 0.196078431372549, 0.6588235294117647, 0.301961 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_color": [ 0.196078431372549, 0.6588235294117647, 0.301961 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_default_color": [ 1.0, 1.0, 1.0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_hover_color": [ 1.0, 1.0, 1.0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_pressed_color": [ 1.0, 1.0, 1.0 ]
  },

  // ???/?? ??
  "gamma_calibration_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "gamma_calibration",
    // 오버라이드 가능한 변수
    "$transition_time_push": "$rainbowpie_ui_animation_transition_time",
    // 오버라이드 가능한 변수
    "$transition_time_pop": "$rainbowpie_ui_animation_transition_time",
    // 오버라이드 가능한 변수
    "$transition_time_push_size": "$rainbowpie_ui_animation_transition_time",
    // 오버라이드 가능한 변수
    "$transition_time_pop_size": "$rainbowpie_ui_animation_transition_time",
    // 오버라이드 가능한 변수
    "$container_transition_time_push": "$rainbowpie_ui_animation_transition_time",
    // 오버라이드 가능한 변수
    "$container_transition_time_pop": "$rainbowpie_ui_animation_transition_time",
    // 오버라이드 가능한 변수
    "$screen_animations": [
      "@common.screen_exit_animation_push_fade",
      "@common.screen_exit_animation_pop_fade",
      "@common.screen_entrance_animation_push_fade",
      "@common.screen_entrance_animation_pop_fade"
    ]
  }
}

grindstone_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: grindstone_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "grindstone",

  // ???/?? ??
  "arrow_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_large')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "title_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "cross_out_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/crossout')"
  },

  // ???/?? ??
  "top_half_panel": {
    // 기준점에서 이동하는 거리
    "offset": [ 4, 14 ]
  },

  // ???/?? ??
  "top_half_panel/title_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "grindstone_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "grindstone_root_panel@rainbowpieui_grindstone.grindstone_root_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_84df7492)"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "grindstone_panel/root_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492"
  },

  // ???/?? ??
  "grindstone_panel/root_panel/common_panel": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 8px", "100% - 28px" ]
  },

  // ???/?? ??
  "grindstone_panel/root_panel/grindstone_screen_inventory": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "container.repairAndDisenchant"
            }
          }
        ]
      }
    ]
  }
}

grindstone_screen_pocket.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: grindstone_screen_pocket.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "grindstone_pocket",

  // ???/?? ??
  "slots_panel/arrow": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_large')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "slots_panel/arrow/cross_out": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/crossout')"
  },

  // ???/?? ??
  "slots_panel": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "inventory_content/scrolling_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image",
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "repair_title_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "grindstone_panel/bg": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "header_and_content_stack_panel/header": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "header_and_content_stack_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header_pocket": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_single_title": true,
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "tile.grindstone.name"
            }
          }
        ]
      }
    ]
  }
}

horse_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: horse_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "horse",

  // ???/?? ??
  "inv_bg_panel/cell_image": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "inv_bg_panel": {
  },

  // ???/?? ??
  "renderer_bg": {
    // 사용할 이미지 경로
    "texture": "textures/ui/Black",
    // ???
    "alpha": 0.4
  },

  // ???/?? ??
  "horse_panel/root_panel/equipment": {
    // 기준점에서 이동하는 거리
    "offset": [ 7, 29 ]
  },

  // ???/?? ??
  "horse_panel/root_panel/renderer": {
    // 기준점에서 이동하는 거리
    "offset": [ 25, 29 ]
  },

  // ???/?? ??
  "horse_panel/root_panel/horse_section_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "horse_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "inv_panel": {
    // 기준점에서 이동하는 거리
    "offset": [ 79, 29 ]
  },

  // ???/?? ??
  "horse_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "horse_root_panel@rainbowpieui_horse.horse_root_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_84df7492)"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "horse_panel/root_panel/common_panel": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 8px", "100% - 28px" ]
  },

  // ???/?? ??
  "horse_panel/root_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492",
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "$container_title"
            }
          }
        ]
      }
    ]
  }
}

horse_screen_pocket.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: horse_screen_pocket.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "horse_pocket",

  // ???/?? ??
  "close_button": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "visual_tabs_equip": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "close_background@rainbowpie_ui_inventory.header_background": {
              // 기준점(어디에서 시작할지)
              "anchor_from": "top_left",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "top_left",
              // 가로/세로 크기
              "size": [ 29, 32 ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "close_button@rainbowpie_ui_common.close_button": {
                    // 오버라이드 가능한 변수
                    "$rainbowpie_ui_theme_closebutton_default_color": "$rainbowpie_ui_theme_inventory_header_title_color",
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 10,
                    // 가로/세로 크기
                    "size": [ "100%", "100%" ],
                    // 기준점에서 이동하는 거리
                    "offset": [ 0, 0 ],
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "center",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "center"
                  }
                }
              ]
            }
          },
          {
            // ???/?? ??
            "rainbowpie_chest": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 기준점(어디에서 시작할지)
              "anchor_from": "bottom_left",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "bottom_left",
              // 가로/세로 크기
              "size": [ 29, 32 ],
              // 기준점에서 이동하는 거리
              "offset": [ 0, -36 ],
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 가져올 값 이름
                  "binding_name": "#is_chested",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#visible"
                }
              ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "background@rainbowpie_ui_inventory.header_background": {
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "chest_icon@horse_pocket.chest_icon_front": {}
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            // ???/?? ??
            "rainbowpie_equip": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 기준점(어디에서 시작할지)
              "anchor_from": "bottom_left",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "bottom_left",
              // 가로/세로 크기
              "size": [ 29, 32 ],
              // 기준점에서 이동하는 거리
              "offset": [ 0, -2 ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "background@rainbowpie_ui_common.inventory_background": {
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // ???/?? ??
                        "checked_left": {
                          // 이미지 표시
                          "type": "image",
                          // 사용할 이미지 경로
                          "texture": "textures/ui/White",
                          // 가로/세로 크기
                          "size": [ 2, "100%" ],
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "left_middle",
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "left_middle",
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 10,
                          // ?? (R,G,B,A)
                          "color": "$rainbowpie_ui_theme_toggle_background_checked_default_btbar_color",
                          // ???
                          "alpha": "$rainbowpie_ui_theme_toggle_background_checked_default_btbar_alpha"
                        }
                      },
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "equip_icon@horse_pocket.saddle_icon_front": {}
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "visual_tabs_equip/close_tab": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "visual_tabs_equip/chest": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "visual_tabs_equip/equip": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "visual_tabs_chest": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "close_background@rainbowpie_ui_inventory.header_background": {
              // 기준점(어디에서 시작할지)
              "anchor_from": "top_left",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "top_left",
              // 가로/세로 크기
              "size": [ 29, 32 ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "close_button@rainbowpie_ui_common.close_button": {
                    // 오버라이드 가능한 변수
                    "$rainbowpie_ui_theme_closebutton_default_color": "$rainbowpie_ui_theme_inventory_header_title_color",
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 10,
                    // 가로/세로 크기
                    "size": [ "100%", "100%" ],
                    // 기준점에서 이동하는 거리
                    "offset": [ 0, 0 ],
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "center",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "center"
                  }
                }
              ]
            }
          },
          {
            // ???/?? ??
            "rainbowpie_chest": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 기준점(어디에서 시작할지)
              "anchor_from": "bottom_left",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "bottom_left",
              // 가로/세로 크기
              "size": [ 29, 32 ],
              // 기준점에서 이동하는 거리
              "offset": [ 0, -36 ],
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 가져올 값 이름
                  "binding_name": "#is_chested",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#visible"
                }
              ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "background@rainbowpie_ui_common.inventory_background": {
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // ???/?? ??
                        "checked_left": {
                          // 이미지 표시
                          "type": "image",
                          // 사용할 이미지 경로
                          "texture": "textures/ui/White",
                          // 가로/세로 크기
                          "size": [ 2, "100%" ],
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "left_middle",
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "left_middle",
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 10,
                          // ?? (R,G,B,A)
                          "color": "$rainbowpie_ui_theme_toggle_background_checked_default_btbar_color",
                          // ???
                          "alpha": "$rainbowpie_ui_theme_toggle_background_checked_default_btbar_alpha"
                        }
                      },
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "chest_icon@horse_pocket.chest_icon_front": {}
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            // ???/?? ??
            "rainbowpie_equip": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 기준점(어디에서 시작할지)
              "anchor_from": "bottom_left",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "bottom_left",
              // 가로/세로 크기
              "size": [ 29, 32 ],
              // 기준점에서 이동하는 거리
              "offset": [ 0, -2 ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "background@rainbowpie_ui_inventory.header_background": {
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "equip_icon@horse_pocket.saddle_icon_front": {}
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "visual_tabs_chest/close_tab": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "visual_tabs_chest/chest": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "visual_tabs_chest/equip": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "renderer_bg": {
    // 사용할 이미지 경로
    "texture": "textures/ui/Black",
    // ???
    "alpha": 0.4
  },

  // ???/?? ??
  "equip_item_panel": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "base_grid_panel/panel_outline": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "base_grid_panel/dark_bg": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_content_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_content_background_alpha"
  },

  // ???/?? ??
  "base_grid_panel/scrolling_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "horse_panel/base_panel/bg": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background"
  }
}

host_options_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: host_options_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "host_options",

  // ???/?? ??
  "host_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "advanced_host_time_tweaker@rainbowpieui_host_options.independent_advanced_host_time_tweaker": {}
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "command_helper@rainbowpieui_host_options.independent_command_helper": { }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "color_picker@rainbowpieui_host_options.color_picker": { }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "host_time_buttons/sub_tab": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "time_grid@scrolling_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_host_options_advanced)",
              // 기준점에서 이동하는 거리
              "offset": "$offset_sub_tabs",
              // 오버라이드 가능한 변수
              "$main_scrolling_content": "rainbowpieui_host_options.host_time_panel"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "advanced_host_time_tweaker@rainbowpieui_host_options.host_options_advanced_host_time_tweaker": {}
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "host_time_buttons/sub_tab/scrolli_scrolli_ravioli": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_host_options_advanced"
  },

  // ???/?? ??
  "host_weather_buttons/sub_tab": {
    // 가로/세로 크기
    "size": [ "100%", "90px" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_left",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "weather_grid@scrolling_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_host_options_advanced)",
              // 기준점에서 이동하는 거리
              "offset": "$offset_sub_tabs",
              // 오버라이드 가능한 변수
              "$main_scrolling_content": "rainbowpieui_host_options.host_weather_panel"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "host_weather_buttons/sub_tab/host_main_grid": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_host_options_advanced"
  },

  // ???/?? ??
  "host_teleport_player_list_buttons": {
    // 가로/세로 크기
    "size": "$panel_size",
    // 오버라이드 가능한 변수
    "$panel_size": [ "default", "default" ],
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_host_options_advanced"
      }
    ]
  },

  // ???/?? ??
  "host_teleport_player_list_buttons/toggle": {
    // 가로/세로 크기
    "size": "$inner_panel_size",
    // 오버라이드 가능한 변수
    "$inner_panel_size": [ "100%", "90px" ],
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_host_options_advanced",
        // 오버라이드 가능한 변수
        "$inner_panel_size": [ "100%", "210px" ]
      }
    ]
  },

  // ???/?? ??
  "host_friends_tab": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          { "advanced_host_friends_tab@rainbowpieui_host_options.advanced_host_friends_tab": {} }
        ]
      }
    ]
  },

  // ???/?? ??
  "player_pic_panel/player_gamer_pic": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "player_pic_panel": {
    // 가로/세로 크기
    "size": [ "100%y", "100%" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ]
  },

  // ???/?? ??
  "player_button_content": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "player_pic_panel",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "padding_panel": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ 5, 0 ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "host_sub_command_grid_item/host_option_banner": {
    // 오버라이드 가능한 변수
    "$glyph_size": [ "100%y", "100%" ],
    // 오버라이드 가능한 변수
    "$button_content_offset_glyph": [ 0, 0 ]
  },

  // ???/?? ??
  "button_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "host_teleport_grid_item/host_option_toggle": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked"
  },

  // ???/?? ??
  "scrollable_selector_area": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true
  },

  // ???/?? ??
  "scrolling_panel": {
    // 오버라이드 가능한 변수
    "$main_offset_scrollable_panel|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$main_size_scrollable_panel|default": [ "100% - 2px", "100%" ]
  },

  // ???/?? ??
  "scrolling_panel/background": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "main_light_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "main_dark_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  }
}

how_to_play_common.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: how_to_play_common.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "how_to_play_common",

  // ???/?? ??
  "glyph_button_control/tab_button_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "dynamic_dialog_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "how_to_play",
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_how_to_play.how_to_play_content"
  },

  // ???/?? ??
  "header_background": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_title_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_title_background_alpha"
  },

  // ???/?? ??
  "header_background/header_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_title_text_color"
  },

  // ???/?? ??
  "paragraph_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_global_text_color"
  },

  // ???/?? ??
  "action_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_size": [ "100% - 20px", "default" ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_alignment": "left",
    // 가로/세로 크기
    "size": [ "100%", 28 ]
  },

  // ???/?? ??
  "topic_category": {
    // 가로/세로 크기
    "size": [ "100%", 16 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "list_title@rainbowpie_ui_common.title_background": {
          // 가로/세로 크기
          "size": [ "100%", 14 ],
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "text_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100% - 4px", 10 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title@rainbowpie_ui_common.title_label": {
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 보여줄 글자
                      "text": "('howtoplay.category.' + $category)",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "section_toggle_button": {
    // 가로/세로 크기
    "size": [ "100%", "25px" ]
  },

  // ???/?? ??
  "section_toggle_button/section_toggle_button": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked",
    // 가로/세로 크기
    "size": [ "100%", "25px" ]
  },

  // ???/?? ??
  "toggle_button_control/tab_button_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  }
}

how_to_play_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: how_to_play_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "how_to_play",

  // ???/?? ??
  "how_to_play_selector_stack_panel/how_to_play_selector_pane/padding_1": {
    // 가로/세로 크기
    "size": [ 0, 1 ]
  }
}

hud_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: hud_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "hud",

  // ???/?? ??
  "hud_title_text": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_flag_a3e3c9d0",
            // 오버라이드 가능한 변수
            "$title_alpha": 0.0,
            // 오버라이드 가능한 변수
            "$title_shadow": true
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "root_panel/centered_gui_elements_at_bottom_middle_touch": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "boss_health_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          { "boss_name_panel@rainbowpieui_hud.boss_name_panel": {} }
        ]
      }
    ]
  },

  // ???/?? ??
  "boss_health_panel/boss_name": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_75ad0b10"
  },

  // ???/?? ??
  "exp_progress_bar_and_hotbar_pocket/item_text/item_text_factory": {
    // ???/?? ??
    "factory_variables": [
      "$rainbowpie_ui_theme_global_font_name",
      "$rainbowpie_ui_theme_global_font_backup_name",
      "$rainbowpie_ui_flag_huditemname_default_font"
    ]
  },

  // ???/?? ??
  "exp_progress_bar_and_hotbar/item_text_factory": {
    // ???/?? ??
    "factory_variables": [
      "$rainbowpie_ui_theme_global_font_name",
      "$rainbowpie_ui_theme_global_font_backup_name",
      "$rainbowpie_ui_flag_huditemname_default_font"
    ]
  },

  // ???/?? ??
  "root_panel/hud_title_text_area": {
    // 목록 아이템을 자동으로 생성
    "factory": {
      // ?? ??
      "name": "hud_title_text_factory",
      // 팩토리 템플릿 매핑
      "control_ids": {
        // ??? ?? ?
        "hud_title_text": "hud_title_text@hud.hud_title_text"
      },
      // ???/?? ??
      "factory_variables": [
        "$rainbowpie_ui_theme_global_font_name",
        "$rainbowpie_ui_theme_global_font_backup_name",
        "$rainbowpie_ui_flag_hudtitle_default_font"
      ]
    }
  },

  // ???/?? ??
  "root_panel/hud_actionbar_text_area": {
    // 목록 아이템을 자동으로 생성
    "factory": {
      // ?? ??
      "name": "hud_actionbar_text_factory",
      // 팩토리 템플릿 매핑
      "control_ids": {
        // ??? ?? ?
        "hud_actionbar_text": "hud_actionbar_text@hud.hud_actionbar_text"
      },
      // ???/?? ??
      "factory_variables": [
        "$rainbowpie_ui_theme_global_font_name",
        "$rainbowpie_ui_theme_global_font_backup_name",
        "$rainbowpie_ui_flag_hudtitle_default_font"
      ]
    }
  },

  // ???/?? ??
  "root_panel/hud_tip_text_factory": {
    // ???/?? ??
    "factory_variables": [
      "$rainbowpie_ui_theme_global_font_name",
      "$rainbowpie_ui_theme_global_font_backup_name",
      "$rainbowpie_ui_flag_hudtitle_default_font"
    ]
  },

  // ???/?? ??
  "vignette_renderer": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "root_panel/layout_customization_close_without_saving/layout_customization_close_without_saving_modal": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "root_panel/layout_customization_close_without_saving": {
    // ???
    "alpha": 0.3,
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          { "rainbowpie_layout_customization_close_without_saving@rainbowpieui_hud.layout_customization_close_without_saving": {} }
        ]
      }
    ]
  },

  // ???/?? ??
  "root_panel/layout_customization_reset/layout_customization_reset_modal": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "root_panel/layout_customization_reset": {
    // ???
    "alpha": 0.3,
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          { "rainbowpie_layout_customization_reset_modal@rainbowpieui_hud.layout_customization_reset_modal": {} }
        ]
      }
    ]
  },

  // ???/?? ??
  "layout_customization_option_content/apply_to_all_toggle/caption_frame/caption": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 3
  },

  // ???/?? ??
  "layout_customization_option_slider/slider": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_sliderbar_enabled": true
  },

  // ???/?? ??
  "layout_customization_sub_panel/background": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha"
  },

  // ???/?? ??
  "layout_customization_sub_panel": {
    // 보이기/숨기기(공간 유지)
    "visible": false
  },

  // ???/?? ??
  "root_panel/layout_customization_hint_drag_frame": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_home + '/r_white')",
    // 가로/세로 크기
    "size": [ "100%c + 12px", "100%c + 5px" ],
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha"
  },

  // ???/?? ??
  "root_panel/layout_customization_hint_drag_frame/layout_customization_hint_drag": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "root_panel/layout_customization_hint_deselect_frame": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_home + '/r_white')",
    // 가로/세로 크기
    "size": [ "100%c + 12px", "100%c + 5px" ],
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha"
  },

  // ???/?? ??
  "root_panel/layout_customization_hint_deselect_frame/layout_customization_hint_deselect": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "root_panel/layout_customization_hint_saved": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_home + '/r_white')",
    // 가로/세로 크기
    "size": [ "100%c + 12px", "100%c + 5px" ],
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha"
  },

  // ???/?? ??
  "root_panel/layout_customization_hint_saved/layout_customization_hint_saved": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "layout_customization_main_panel_button/button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "layout_customization_main_panel/main_panel_frame": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha"
  },

  // ???/?? ??
  "boss_name_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_flag_hudbossname_default_font",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_theme_global_font_name": "default",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_theme_global_font_backup_name": "default"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "boss_name_panel/boss_name": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "hud_actionbar_text": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_home + '/r_black')",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_flag_hudtitle_default_font",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_theme_global_font_name": "default",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_theme_global_font_backup_name": "default"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "hud_actionbar_text/actionbar_message": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "hud_tip_text": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_home + '/r_black')",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_flag_hudtitle_default_font",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_theme_global_font_name": "default",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_theme_global_font_backup_name": "default"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "hud_tip_text/item_text_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "anim_item_name_background_alpha_out": {
    // 시작 값
    "from": "$rainbowpie_ui_theme_hud_itemname_background_alpha"
  },

  // ???/?? ??
  "anim_item_name_background_alpha_in": {
    // 끝 값
    "to": "$rainbowpie_ui_theme_hud_itemname_background_alpha"
  },

  // ???/?? ??
  "item_name_text_root/item_text_aligner/item_text_control/item_text_background": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_home + '/r_white')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_hud_itemname_background_color",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_flag_huditemname_default_font",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_theme_global_font_name": "default",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_theme_global_font_backup_name": "default"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "item_name_text_root/item_text_aligner/item_text_control/item_text_label": {
    // ?? ?? ?
    "max_size": [ 200, 100 ],
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_hud_itemname_text_color",
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? ??
    "shadow": false
  },

  // ???/?? ??
  "hud_player_renderer/hud_player": {
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_flag_0ffd0593)"
  },

  // ???/?? ??
  "hud_player_renderer": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          { "live_player_renderer@rainbowpieui_hud.live_player_renderer": {} }
        ]
      }
    ]
  },

  // ???/?? ??
  "player_position": {
    // Ignore player_position when using HotbarMode 2
    "ignored": "(not $rainbowpie_ui_flag_disable_custom_chat_ui and (($rainbowpie_ui_flag_hud_hotbar_mode = 2) or (not $touch) or $rainbowpie_ui_flag_6d2ac350))"
  },

  // ???/?? ??
  "number_of_days_played": {
    // Ignore number_of_days_played when using HotbarMode 2
    "ignored": "(not $rainbowpie_ui_flag_disable_custom_chat_ui and (($rainbowpie_ui_flag_hud_hotbar_mode = 2) or (not $touch) or $rainbowpie_ui_flag_6d2ac350))"
  },

  // ???/?? ??
  "chat_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_disable_custom_chat_ui and ((not $touch) or $rainbowpie_ui_flag_6d2ac350))"
  },

  // ???/?? ??
  "exp_progress_bar_and_hotbar/resizing_xp_bar_with_hotbar": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not ($rainbowpie_ui_flag_hud_hotbar_mode = 0))"
  },

  // ???/?? ??
  "hotbar_chooser": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not ($rainbowpie_ui_flag_hud_hotbar_mode = 0))"
  },

  // ???/?? ??
  "exp_progress_bar_and_hotbar/resizing_hotbar_locator_bar": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not ($rainbowpie_ui_flag_hud_hotbar_mode = 0))"
  },

  // ???/?? ??
  "root_panel": {
    // ????? ?? ?
    "animation_reset_name": "screen_animation_reset",
    // 애니메이션 목록
    "anims": [
      "@rainbowpieui_hud.hud_root_panel_back_animation",
      "@rainbowpieui_hud.hud_root_panel_back_animation_pop",
      "@rainbowpieui_hud.hud_root_panel_animation",
      "@rainbowpieui_hud.hud_root_panel_animation_pop"
    ],
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          { "rainbowpie_root_panel@rainbowpieui_hud.rainbowpie_root_panel": {} }
        ]
      },
      {
        // ??? ???
        "control_name": "centered_gui_elements_at_bottom_middle_touch",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "centered_gui_elements_at_bottom_middle_touch2@centered_gui_elements_at_bottom_middle": {
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 가져올 값 이름
                  "binding_name": "#hud_visible_centered_touch",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#visible",
                  // 게임이 주는 전역 값 연결
                  "binding_type": "global"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "hud_content": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          { "rainbowpie_hud_panel@rainbowpieui_hud.rainbowpie_hud_panel": {} }
        ]
      }
    ]
  },

  // ???/?? ??
  "hud_screen": {
    // 오버라이드 가능한 변수
    "$use_loading_bars": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_watermark": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "hud"
  }
}

in_bed_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: in_bed_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "bed",

  // ???/?? ??
  "in_bed_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "bed",
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_bed.in_bed_screen_content"
  },

  // ???/?? ??
  "in_bed_screen_content/wake_up_button_panel/wake_up_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_form_fitting_button"
  },

  // ???/?? ??
  "in_bed_screen_content/wake_up_button_panel/chat_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_form_fitting_button"
  },

  // ???/?? ??
  "in_bed_screen_content/wake_up_label_panel": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  }
}

inventory_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: inventory_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "crafting",

  // ???/?? ??
  "tab_content/tab_content_search_bar_panel/vertical_padding_2": {
    // 가로/세로 크기
    "size": [ 0, 2 ]
  },

  // ???/?? ??
  "tab_content/tab_content_search_bar_panel/vertical_padding_3": {
    // 가로/세로 크기
    "size": [ 0, 1 ]
  },

  // ???/?? ??
  "tab_content/tab_content_search_bar_panel/search_and_filter_panel": {
    // 이 컨트롤 안에서 쓰는 임시 저장소
    "property_bag": {
      // ???/??? ?
      "#toggle_state": true
    },
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#is_left_tab_search"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "show_search_box_vanilla",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#toggle_state",
        // 완전히 제거(공간도 없음)
        "ignored": "($search_button_ignored or (not $rainbowpie_ui_flag_ef158e0f))"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#is_left_tab_search and #toggle_state)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "tab_content/tab_content_search_bar_panel": {
    // 가로/세로 크기
    "size": [ "100% - 6px", "100% - 6px" ],
    // 오버라이드 가능한 변수
    "$search_button_ignored|default": true,
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "search_and_filter_panel",
        // ?? ??
        "operation": "insert_before",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "search_and_filter_button_panel": {
              // 줄맞춤 컨테이너: 가로/세로로 자동 배치
              "type": "stack_panel",
              // 쌓는 방향(가로/세로)
              "orientation": "horizontal",
              // 가로/세로 크기
              "size": [ "100% + 1px", 16 ],
              // 겹치는 순서(숫자 클수록 위)
              "layer": 2,
              // 오버라이드 가능한 변수
              "$focus_id": "recipe_search_bar",
              // 오버라이드 가능한 변수
              "$focus_override_right": "craftable_toggle",
              // 오버라이드 가능한 변수
              "$focus_override_up": "construction_tab",
              // 완전히 제거(공간도 없음)
              "ignored": "($search_button_ignored or (not $rainbowpie_ui_flag_ef158e0f))",
              // 보이기/숨기기(공간 유지)
              "visible": true,
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 가져올 값 이름
                  "binding_name": "#is_left_tab_search"
                },
                {
                  // 계산/조건 결과를 연결
                  "binding_type": "view",
                  // ?? ??
                  "source_control_name": "show_search_box_vanilla",
                  // 계산식/참조 값
                  "source_property_name": "#toggle_state",
                  // 결과가 들어갈 속성
                  "target_property_name": "#toggle_state"
                },
                {
                  // 계산/조건 결과를 연결
                  "binding_type": "view",
                  // 계산식/참조 값
                  "source_property_name": "(#is_left_tab_search and (not #toggle_state))",
                  // 결과가 들어갈 속성
                  "target_property_name": "#visible"
                }
              ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "search_button@rainbowpieui_crafting.vanilla_search_button_toggle_base": {
                    // 오버라이드 가능한 변수
                    "$button_image_size": [ "100%", "100% - 2px" ],
                    // 가로/세로 크기
                    "size": [ "fill", "100%" ],
                    // 오버라이드 가능한 변수
                    "$toggle_group_forced_index": 1000,
                    // 오버라이드 가능한 변수
                    "$toggle_view_binding_name": "show_search_box_vanilla",
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 10
                  }
                },
                {
                  // ???/?? ??
                  "padding_1": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [ 1, 0 ]
                  }
                },
                {
                  // ???/?? ??
                  "filter_toggle_holder": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [ "100%c", "100%" ],

                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                      {
                        // 가져올 값 이름
                        "binding_name": "(not #is_creative_mode)",
                        // 가져온 값을 다른 속성으로 연결
                        "binding_name_override": "#visible"
                      }
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "filter_toggle@crafting.filter_toggle": {
                          // 기준점에서 이동하는 거리
                          "offset": [ 1, 0 ],
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "right_middle",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "right_middle",

                          // 오버라이드 가능한 변수
                          "$focus_id": "craftable_toggle",
                          // 오버라이드 가능한 변수
                          "$focus_override_left": "recipe_search_bar",
                          // 오버라이드 가능한 변수
                          "$default_border_visible": false,
                          // 오버라이드 가능한 변수
                          "$hover_border_visible": false
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "recipe_inventory_screen_content": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "crafting_helper_controller@rainbowpieui_crafting.crafting_helper_controller": {}
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "compass_panel@rainbowpieui_crafting.compass_panel": {}
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "player_inventory": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_actions_inventory@rainbowpie_module_inventory_actions.inventory_actions_inventory": {
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "recipe_inventory_screen_content/content_stack_panel/recipe_book": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 게임이 주는 전역 값 연결
        "binding_type": "global",
        // 가져올 값 이름
        "binding_name": "#is_survival_layout"
      },
      {
        // 게임이 주는 전역 값 연결
        "binding_type": "global",
        // 가져올 값 이름
        "binding_name": "#is_recipe_book_layout"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not #is_survival_layout and not #is_recipe_book_layout)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible",
        // 완전히 제거(공간도 없음)
        "ignored": "(not $rainbowpie_ui_flag_72873fec)"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not #is_survival_layout)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible",
        // 완전히 제거(공간도 없음)
        "ignored": "$rainbowpie_ui_flag_72873fec"
      }
    ]
  },

  // ???/?? ??
  "recipe_inventory_screen_content/content_stack_panel": {
    // 가로/세로 크기
    "size": "$inventory_screen_size",
    // 오버라이드 가능한 변수
    "$inventory_screen_size": [ 326, 166 ],
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "player_inventory",
        // ?? ??
        "operation": "insert_before",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "recipe_book_animated": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ "150px", "100%" ],
              // 애니메이션 목록
              "anims": [
                "@rainbowpieui_crafting.recipe_book_exit_animation_push",
                "@rainbowpieui_crafting.recipe_book_exit_animation_pop",
                "@rainbowpieui_crafting.recipe_book_entrance_animation_push",
                "@rainbowpieui_crafting.recipe_book_entrance_animation_pop"
              ],
              // ????? ?? ?
              "animation_reset_name": "screen_animation_reset",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_72873fec)",
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 게임이 주는 전역 값 연결
                  "binding_type": "global",
                  // 가져올 값 이름
                  "binding_name": "#is_recipe_book_layout",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#visible"
                }
              ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "recipe_book@crafting.recipe_book": {
                    // 오버라이드 가능한 변수
                    "$search_button_ignored": false,
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "right_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "right_middle",
                    // 가로/세로 크기
                    "size": [ "146px", "100%" ],
                    // 기준점에서 이동하는 거리
                    "offset": [ -8, 0 ]
                  }
                }
              ]
            }
          },
          {
            // ???/?? ??
            "center_padding": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_84df7492 or $rainbowpie_ui_flag_72873fec)",
              // 가로/세로 크기
              "size": [ 4, 0 ],
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 게임이 주는 전역 값 연결
                  "binding_type": "global",
                  // 가져올 값 이름
                  "binding_name": "#is_recipe_book_layout",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#visible"
                }
              ]
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "player_inventory_root_panel@rainbowpieui_crafting.player_inventory": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_84df7492 or $rainbowpie_ui_flag_72873fec)",
              // 오버라이드 가능한 변수
              "$animation_ignored": true,
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_search_ignored": true,
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 게임이 주는 전역 값 연결
                  "binding_type": "global",
                  // 가져올 값 이름
                  "binding_name": "#is_recipe_book_layout",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#visible"
                }
              ]
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "player_inventory_root_panel_animated@rainbowpieui_crafting.player_inventory": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_84df7492)",
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 게임이 주는 전역 값 연결
                  "binding_type": "global",
                  // 가져올 값 이름
                  "binding_name": "#is_recipe_book_layout"
                },
                {
                  // 게임이 주는 전역 값 연결
                  "binding_type": "global",
                  // 가져올 값 이름
                  "binding_name": "#is_survival_layout"
                },
                {
                  // 계산/조건 결과를 연결
                  "binding_type": "view",
                  // 계산식/참조 값
                  "source_property_name": "(#is_survival_layout or #is_recipe_book_layout)",
                  // 결과가 들어갈 속성
                  "target_property_name": "#visible",
                  // 완전히 제거(공간도 없음)
                  "ignored": "(not $rainbowpie_ui_flag_72873fec)"
                },
                {
                  // 계산/조건 결과를 연결
                  "binding_type": "view",
                  // 계산식/참조 값
                  "source_property_name": "(#is_survival_layout)",
                  // 결과가 들어갈 속성
                  "target_property_name": "#visible",
                  // 완전히 제거(공간도 없음)
                  "ignored": "$rainbowpie_ui_flag_72873fec"
                }
              ]
            }
          }
        ]
      },
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_flag_84df7492",
            // 오버라이드 가능한 변수
            "$inventory_screen_size": [ 326, 156 ]
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "recipe_inventory_screen_content/content_stack_panel/player_inventory": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492"
  },

  // ???/?? ??
  "survival_panel_top_half": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          { "armor_durability_panel@rainbowpieui_crafting.armor_durability_panel": {} }
        ]
      }
    ]
  },

  // ???/?? ??
  "work_bench_panel_3x3/inventory_label": {
    // 기준점에서 이동하는 거리
    "offset": [ -21, 74 ]
  },

  // ???/?? ??
  "inventory_container_item/item_cell/item/stack_count_label": {
  },

  // ???/?? ??
  "creative_hotbar_panel/creative_hotbar_background": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 5 ],
    // 가로/세로 크기
    "size": [ "100%c + 6px", "100%c + 3px" ],
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_background_alpha"
  },

  // ???/?? ??
  "creative_hotbar_panel/creative_hotbar_background/hotbar_grid": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, -3 ],
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },


  // ???/?? ??
  "layout_toggle_content/icon": {
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center"
  },

  // ???/?? ??
  "recipe_inventory_screen_content/content_stack_panel/toolbar_anchor": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "rainbowpie_toolbar": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ "100%c", 23 ],
              // 기준점(어디에서 시작할지)
              "anchor_from": "top_right",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "bottom_right",
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 게임이 주는 전역 값 연결
                  "binding_type": "global",
                  // 가져올 값 이름
                  "binding_name": "#is_creative_layout",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#visible",
                  // 완전히 제거(공간도 없음)
                  "ignored": "(not $rainbowpie_ui_flag_84df7492)"
                }
              ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // ???/?? ??
                  "toolbar_stack_panel": {
                    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                    "type": "stack_panel",
                    // 쌓는 방향(가로/세로)
                    "orientation": "horizontal",

                    // 가로/세로 크기
                    "size": [ "default", "100%" ],
                    // 기준점에서 이동하는 거리
                    "offset": [ 0, 0 ],
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "top_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "top_middle",

                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // ???/?? ??
                        "left_trigger_anchor": {
                          // 패널: 다른 부품을 담는 바닥판
                          "type": "panel",
                          // 가로/세로 크기
                          "size": [ 0, "100%" ],
                          // 게임 값과 연결하는 규칙 목록
                          "bindings": [
                            {
                              // 가져올 값 이름
                              "binding_name": "#gamepad_helper_visible",
                              // 가져온 값을 다른 속성으로 연결
                              "binding_name_override": "#visible"
                            }
                          ],
                          // 이 안에 들어가는 부품 목록
                          "controls": [
                            {
                              // 다른 템플릿을 가져와서 확장(상속)
                              "gamepad_helper_left_trigger@common.gamepad_helper_left_trigger": {
                                // 기준점에서 이동하는 거리
                                "offset": [ 3, -2 ],
                                // 기준점(어디에서 시작할지)
                                "anchor_from": "left_middle",
                                // 붙일 위치(어디에 놓을지)
                                "anchor_to": "right_middle"
                              }
                            }
                          ]
                        }
                      },
                      {
                        // ???/?? ??
                        "creative_layout_toggle_panel": {
                          // 패널: 다른 부품을 담는 바닥판
                          "type": "panel",
                          // 가로/세로 크기
                          "size": [ "100%c", "100%" ],
                          // 게임 값과 연결하는 규칙 목록
                          "bindings": [
                            {
                              // 게임이 주는 전역 값 연결
                              "binding_type": "global",
                              // 가져올 값 이름
                              "binding_name": "#creative_layout_button_visible",
                              // 가져온 값을 다른 속성으로 연결
                              "binding_name_override": "#visible"
                            }
                          ],
                          // 이 안에 들어가는 부품 목록
                          "controls": [
                            {
                              // 다른 템플릿을 가져와서 확장(상속)
                              "creative_layout_toggle@crafting.creative_layout_toggle": {
                                // 가로/세로 크기
                                "size": [ 25, "100%" ],
                                // 오버라이드 가능한 변수
                                "$focus_override_left": "search_tab",
                                // 오버라이드 가능한 변수
                                "$unchecked_control": "rainbowpie_ui_toggle.toggle_tab_unchecked",
                                // 오버라이드 가능한 변수
                                "$checked_control": "rainbowpie_ui_toggle.toggle_tab_checked",
                                // 오버라이드 가능한 변수
                                "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_hover",
                                // 오버라이드 가능한 변수
                                "$checked_hover_control": "rainbowpie_ui_toggle.toggle_tab_checked_hover",
                                // 오버라이드 가능한 변수
                                "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_locked",
                                // 오버라이드 가능한 변수
                                "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_locked_hover",
                                // 오버라이드 가능한 변수
                                "$checked_locked_control": "rainbowpie_ui_toggle.toggle_tab_checked_locked",
                                // 오버라이드 가능한 변수
                                "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_tab_checked_locked_hover",

                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_unchecked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_unchecked_default_alpha": 0.3,
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha": 0.4,
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_checked_default_alpha": 0.5,
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha": 0.6
                              }
                            }
                          ]
                        }
                      },
                      {
                        // ???/?? ??
                        "recipe_book_layout_toggle_panel_survival": {
                          // 패널: 다른 부품을 담는 바닥판
                          "type": "panel",
                          // 가로/세로 크기
                          "size": [ 25, "100%" ],
                          // 게임 값과 연결하는 규칙 목록
                          "bindings": [
                            {
                              // 게임이 주는 전역 값 연결
                              "binding_type": "global",
                              // 가져올 값 이름
                              "binding_name": "(not #is_creative_mode)",
                              // 가져온 값을 다른 속성으로 연결
                              "binding_name_override": "#visible"
                            }
                          ],
                          // 이 안에 들어가는 부품 목록
                          "controls": [
                            {
                              // 다른 템플릿을 가져와서 확장(상속)
                              "recipe_book_layout_toggle@crafting.recipe_book_layout_toggle": {
                                // 가로/세로 크기
                                "size": [ 25, "100%" ],
                                // 오버라이드 가능한 변수
                                "$focus_override_left": "search_tab",
                                // 오버라이드 가능한 변수
                                "$unchecked_control": "rainbowpie_ui_toggle.toggle_tab_unchecked",
                                // 오버라이드 가능한 변수
                                "$checked_control": "rainbowpie_ui_toggle.toggle_tab_checked",
                                // 오버라이드 가능한 변수
                                "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_hover",
                                // 오버라이드 가능한 변수
                                "$checked_hover_control": "rainbowpie_ui_toggle.toggle_tab_checked_hover",
                                // 오버라이드 가능한 변수
                                "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_locked",
                                // 오버라이드 가능한 변수
                                "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_locked_hover",
                                // 오버라이드 가능한 변수
                                "$checked_locked_control": "rainbowpie_ui_toggle.toggle_tab_checked_locked",
                                // 오버라이드 가능한 변수
                                "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_tab_checked_locked_hover",

                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_unchecked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_unchecked_default_alpha": 0.3,
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha": 0.4,
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_checked_default_alpha": 0.5,
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha": 0.6
                              }
                            }
                          ]
                        }
                      },
                      {
                        // ???/?? ??
                        "recipe_book_layout_toggle_panel_creative": {
                          // 패널: 다른 부품을 담는 바닥판
                          "type": "panel",
                          // 가로/세로 크기
                          "size": [ "100%c", "100%" ],
                          // 게임 값과 연결하는 규칙 목록
                          "bindings": [
                            {
                              // 게임이 주는 전역 값 연결
                              "binding_type": "global",
                              // 가져올 값 이름
                              "binding_name": "#is_creative_mode",
                              // 가져온 값을 다른 속성으로 연결
                              "binding_name_override": "#visible"
                            }
                          ],
                          // 이 안에 들어가는 부품 목록
                          "controls": [
                            {
                              // 다른 템플릿을 가져와서 확장(상속)
                              "recipe_book_layout_toggle@crafting.recipe_book_layout_toggle": {
                                // 가로/세로 크기
                                "size": [ 25, "100%" ],
                                // 오버라이드 가능한 변수
                                "$unchecked_control": "rainbowpie_ui_toggle.toggle_tab_unchecked",
                                // 오버라이드 가능한 변수
                                "$checked_control": "rainbowpie_ui_toggle.toggle_tab_checked",
                                // 오버라이드 가능한 변수
                                "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_hover",
                                // 오버라이드 가능한 변수
                                "$checked_hover_control": "rainbowpie_ui_toggle.toggle_tab_checked_hover",
                                // 오버라이드 가능한 변수
                                "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_locked",
                                // 오버라이드 가능한 변수
                                "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_locked_hover",
                                // 오버라이드 가능한 변수
                                "$checked_locked_control": "rainbowpie_ui_toggle.toggle_tab_checked_locked",
                                // 오버라이드 가능한 변수
                                "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_tab_checked_locked_hover",

                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_unchecked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_unchecked_default_alpha": 0.3,
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha": 0.4,
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_checked_default_alpha": 0.5,
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha": 0.6
                              }
                            }
                          ]
                        }
                      },
                      {
                        // ???/?? ??
                        "survival_layout_toggle_panel": {
                          // 패널: 다른 부품을 담는 바닥판
                          "type": "panel",
                          // 가로/세로 크기
                          "size": [ "100%c", "100%" ],
                          // 이 안에 들어가는 부품 목록
                          "controls": [
                            {
                              // 다른 템플릿을 가져와서 확장(상속)
                              "survival_layout_toggle@crafting.survival_layout_toggle": {
                                // 가로/세로 크기
                                "size": [ 25, "100%" ],
                                // 오버라이드 가능한 변수
                                "$unchecked_control": "rainbowpie_ui_toggle.toggle_tab_unchecked",
                                // 오버라이드 가능한 변수
                                "$checked_control": "rainbowpie_ui_toggle.toggle_tab_checked",
                                // 오버라이드 가능한 변수
                                "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_hover",
                                // 오버라이드 가능한 변수
                                "$checked_hover_control": "rainbowpie_ui_toggle.toggle_tab_checked_hover",
                                // 오버라이드 가능한 변수
                                "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_locked",
                                // 오버라이드 가능한 변수
                                "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_tab_unchecked_locked_hover",
                                // 오버라이드 가능한 변수
                                "$checked_locked_control": "rainbowpie_ui_toggle.toggle_tab_checked_locked",
                                // 오버라이드 가능한 변수
                                "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_tab_checked_locked_hover",

                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_unchecked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_unchecked_default_alpha": 0.3,
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha": 0.4,
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_checked_default_alpha": 0.5,
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
                                // 오버라이드 가능한 변수
                                "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha": 0.6
                              }
                            }
                          ]
                        }
                      },
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "button_background@rainbowpie_ui_inventory.header_background": {
                          // 이미지 표시
                          "type": "image",
                          // 가로/세로 크기
                          "size": [ "100%c", "100%" ],
                          // 이 안에 들어가는 부품 목록
                          "controls": [
                            {
                              // ???/?? ??
                              "button_stack_panel": {
                                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                "type": "stack_panel",
                                // 쌓는 방향(가로/세로)
                                "orientation": "horizontal",
                                // 가로/세로 크기
                                "size": [ "100%c", "100%" ],
                                // 이 안에 들어가는 부품 목록
                                "controls": [
                                  {
                                    // ???/?? ??
                                    "close_button_panel": {
                                      // 패널: 다른 부품을 담는 바닥판
                                      "type": "panel",
                                      // 가로/세로 크기
                                      "size": [ "100%y", "100%" ],
                                      // 게임 값과 연결하는 규칙 목록
                                      "bindings": [
                                        {
                                          // 가져올 값 이름
                                          "binding_name": "#close_button_visible",
                                          // 가져온 값을 다른 속성으로 연결
                                          "binding_name_override": "#visible"
                                        }
                                      ],
                                      // 이 안에 들어가는 부품 목록
                                      "controls": [
                                        {
                                          // 다른 템플릿을 가져와서 확장(상속)
                                          "close_button@rainbowpie_ui_common.close_button": {
                                            // 오버라이드 가능한 변수
                                            "$rainbowpie_ui_theme_closebutton_default_color": "$rainbowpie_ui_theme_inventory_header_title_color",
                                            // 오버라이드 가능한 변수
                                            "$close_button_panel_size": [ "100%", "100%" ],
                                            // 겹치는 순서(숫자 클수록 위)
                                            "layer": 10,
                                            // 가로/세로 크기
                                            "size": [ "100%", "100%" ],
                                            // 기준점에서 이동하는 거리
                                            "offset": [ 0, 0 ],
                                            // 기준점(어디에서 시작할지)
                                            "anchor_from": "center",
                                            // 붙일 위치(어디에 놓을지)
                                            "anchor_to": "center"
                                          }
                                        }
                                      ]
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      },
                      {
                        // ???/?? ??
                        "right_trigger_anchor": {
                          // 패널: 다른 부품을 담는 바닥판
                          "type": "panel",
                          // 가로/세로 크기
                          "size": [ 0, "100%" ],
                          // 게임 값과 연결하는 규칙 목록
                          "bindings": [
                            {
                              // 가져올 값 이름
                              "binding_name": "#gamepad_helper_visible",
                              // 가져온 값을 다른 속성으로 연결
                              "binding_name_override": "#visible"
                            }
                          ],
                          // 이 안에 들어가는 부품 목록
                          "controls": [
                            {
                              // 다른 템플릿을 가져와서 확장(상속)
                              "gamepad_helper_right_trigger@common.gamepad_helper_right_trigger": {
                                // 기준점에서 이동하는 거리
                                "offset": [ -2, -2 ],
                                // 기준점(어디에서 시작할지)
                                "anchor_from": "right_middle",
                                // 붙일 위치(어디에 놓을지)
                                "anchor_to": "left_middle"
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "recipe_inventory_screen_content/content_stack_panel/toolbar_anchor/toolbar_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "crafting_arrow": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "crafting_arrow_large": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_large')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "player_armor_panel/offhand_grid": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "player_armor_panel/armor_grid": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "player_armor_panel/player_bg": {
    // 가로/세로 크기
    "size": [ 54, 72 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점에서 이동하는 거리
    "offset": [ 25, 7 ],
    // ???
    "alpha": 0.4
  },

  // ???/?? ??
  "player_armor_panel/player_preview_border": {
    // 사용할 이미지 경로
    "texture": ""
  },

  // ???/?? ??
  "tab_content/tab_content_search_bar_panel/search_and_filter_panel/text_edit_control": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_editbox_enabled": true
  },

  // ???/?? ??
  "grid_item_for_recipe_book": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_flag_84df7492",
            // 오버라이드 가능한 변수
            "$background_images": "rainbowpieui_crafting.recipe_cell_panel"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "recipe_container_cell_images": {
    // ???
    "alpha": 0.4,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#container_item_background_texture",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$item_collection_name",
        // ?? ???
        "binding_condition": "$cell_images_binding_condition"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#container_item_background_texture - 'textures/ui/')",
        // 결과가 들어갈 속성
        "target_property_name": "#container_item_background_texture_filename"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(($rainbowpie_ui_path_overrides + '/ui/') + #container_item_background_texture_filename)",
        // 결과가 들어갈 속성
        "target_property_name": "#texture"
      }
    ]
  },

  // ???/?? ??
  "cell_image_classic": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "cell_image_normal": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "cell_image_invert": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "cell_image_red": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_red_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_red_alpha"
  },

  // ???/?? ??
  "cell_image_selected": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_highlight_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_highlight_alpha"
  },

  // ???/?? ??
  "cell_image_darkgrey": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "inventory_container_item": {
  },

  // ???/?? ??
  "scroll_panel": {
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image"
  },

  // ???/?? ??
  "recipe_book_scroll_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true
  },

  // ???/?? ??
  "creative_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "crafting_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "inventory_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "top_tab": {
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$tab_image_size": [ "100%", "100% - 4px" ],
    // 오버라이드 가능한 변수
    "$tab_image_anchor": "top_middle",
    // 오버라이드 가능한 변수
    "$tab_content_size": [ "100% - 4px", "100% - 8px" ],
    // 오버라이드 가능한 변수
    "$tab_content_offset": [ 0, 2 ],
    // 오버라이드 가능한 변수
    "$tab_content_anchor": "top_middle",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": "$rainbowpie_ui_theme_inventory_header_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_alpha": 0.6
  },

  // ???/?? ??
  "recipe_book/tab_navigation_panel": {
  },

  // ???/?? ??
  "center_fold/center_bg": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "player_inventory/common_panel": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background"
  },

  // ???/?? ??
  "recipe_book/bg": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background"
  }
}

inventory_screen_pocket.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: inventory_screen_pocket.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "crafting_pocket",

  // ???/?? ??
  "crafting_arrow_down": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_down')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "scroll_panel_pocket": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true
  },

  // ???/?? ??
  "right_tab_navigation_panel_pocket/content": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "close_panel": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ "100%", 33 ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "close_background@rainbowpie_ui_inventory.header_background": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "right_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "right_middle",
                    // 가로/세로 크기
                    "size": [ "100% - 4px", 33 ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "close_button@rainbowpie_ui_common.close_button": {
                          // 오버라이드 가능한 변수
                          "$rainbowpie_ui_theme_closebutton_default_color": "$rainbowpie_ui_theme_inventory_header_title_color",
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 10,
                          // 가로/세로 크기
                          "size": [ "100%", "100%" ],
                          // 기준점에서 이동하는 거리
                          "offset": [ 0, 0 ],
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "center",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "center"
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "right_tab_navigation_panel_pocket/content/close": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "pocket_armor_tab_content/label_and_renderer/label_panel/armor_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "pocket_armor_tab_content/label_and_renderer/renderer_panel": {
  },

  // ???/?? ??
  "pocket_armor_tab_content/equipment_and_renderer/armor_panel/armor_and_player/player_preview_border/player_bg": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // ???
    "alpha": 0.4
  },

  // ???/?? ??
  "pocket_armor_tab_content/equipment_and_renderer/armor_panel/armor_and_player/player_preview_border": {
    // 사용할 이미지 경로
    "texture": ""
  },

  // ???/?? ??
  "pocket_armor_tab_content/equipment_and_renderer/equipment/offhand_grid": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "pocket_armor_tab_content/equipment_and_renderer/equipment/armor_grid": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "hotbar_panel/bg": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "right_tab_content/bg": {
    // 완전히 제거(공간도 없음)
    "ignored": true,
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background"
  },

  // ???/?? ??
  "right_tab": {
    // 오버라이드 가능한 변수
    "$checked_bar_anchor": "right",
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$tab_image_size": [ "100% - 4px", "100%" ],
    // 오버라이드 가능한 변수
    "$tab_image_anchor": "right_middle",
    // 오버라이드 가능한 변수
    "$tab_content_size": [ "100% - 4px", "100% - 8px" ],
    // 오버라이드 가능한 변수
    "$tab_content_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$tab_content_anchor": "right_middle",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": "$rainbowpie_ui_theme_inventory_header_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_alpha": 0.6
  },

  // ???/?? ??
  "right_panel/right_background": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background"
  },

  // ???/?? ??
  "both_panels/offset_panel/center_bg": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "left_tab": {
    // 오버라이드 가능한 변수
    "$checked_bar_anchor": "left",
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$tab_image_size": [ "100% - 4px", "100%" ],
    // 오버라이드 가능한 변수
    "$tab_image_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$tab_content_size": [ "100% - 4px", "100% - 8px" ],
    // 오버라이드 가능한 변수
    "$tab_content_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$tab_content_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": "$rainbowpie_ui_theme_inventory_header_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_alpha": 0.6
  },

  // ???/?? ??
  "left_panel/left_background": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background"
  }
}

invite_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: invite_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "invite",

  // Fix layout on v1.21.44
  "online_xbox_live_friend_list_grid": {
    // ??? ?? ?
    "grid_item_template": "invite.online_xbox_live_friend_grid_item"
  },

  // ???/?? ??
  "offline_xbox_live_friend_list_grid": {
    // ??? ?? ?
    "grid_item_template": "invite.offline_xbox_live_friend_grid_item"
  },

  // ???/?? ??
  "online_platform_friend_list_grid": {
    // ??? ?? ?
    "grid_item_template": "invite.online_platform_friend_grid_item"
  },

  // ???/?? ??
  "offline_platform_friend_list_grid": {
    // ??? ?? ?
    "grid_item_template": "invite.offline_platform_friend_grid_item"
  },

  // ???/?? ??
  "online_linked_account_friend_list_grid": {
    // ??? ?? ?
    "grid_item_template": "invite.online_linked_account_friend_grid_item"
  },

  // ???/?? ??
  "offline_linked_account_friend_list_grid": {
    // ??? ?? ?
    "grid_item_template": "invite.offline_linked_account_friend_grid_item"
  },

  // ???/?? ??
  "msa_friend_button_layout/friend_grid_label_layout/spacer_01": {
    // 가로/세로 크기
    "size": [ "100%", 1.5 ]
  },

  // ???/?? ??
  "msa_friend_button_layout/spacer_02": {
    // 가로/세로 크기
    "size": [ 5, "100%" ]
  },

  // ???/?? ??
  "msa_friend_button_layout/spacer01": {
    // 가로/세로 크기
    "size": [ 23, "100%" ]
  },

  // ???/?? ??
  "gamerpic_panel": {
    // 가로/세로 크기
    "size": [ "100%y", "100%" ]
  },

  // ???/?? ??
  "gamerpic_panel/gamerpic": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "template_msa_friend_button_layout": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "friend_background_hover@invite.friend_background_hover": {
              // 보이기/숨기기(공간 유지)
              "visible": "(($check_state_panel = 'invite.checked_hover_panel') or ($check_state_panel = 'invite.unchecked_hover_panel'))"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "template_platform_friend_button_layout": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "friend_background_hover@invite.friend_background_hover": {
              // 보이기/숨기기(공간 유지)
              "visible": "(($check_state_panel = 'invite.checked_hover_panel') or ($check_state_panel = 'invite.unchecked_hover_panel'))"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "template_linked_friend_button_layout": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "friend_background_hover@invite.friend_background_hover": {
              // 보이기/숨기기(공간 유지)
              "visible": "(($check_state_panel = 'invite.checked_hover_panel') or ($check_state_panel = 'invite.unchecked_hover_panel'))"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "template_msa_friend_button_layout/friend_background": {
    // 완전히 제거(공간도 없음)
    "ignored": "(($check_state_panel = 'invite.checked_hover_panel') or ($check_state_panel = 'invite.unchecked_hover_panel'))"
  },

  // ???/?? ??
  "template_platform_friend_button_layout/friend_background": {
    // 완전히 제거(공간도 없음)
    "ignored": "(($check_state_panel = 'invite.checked_hover_panel') or ($check_state_panel = 'invite.unchecked_hover_panel'))"
  },

  // ???/?? ??
  "template_linked_friend_button_layout/friend_background": {
    // 완전히 제거(공간도 없음)
    "ignored": "(($check_state_panel = 'invite.checked_hover_panel') or ($check_state_panel = 'invite.unchecked_hover_panel'))"
  },

  // ???/?? ??
  "black_border": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha"
  },

  // ???/?? ??
  "black_border_hover": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_button_background_hover_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_button_background_hover_alpha"
  },

  // ???/?? ??
  "frame_label": {
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "label": {
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color",
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "friends_pagination_controls/center_panel/page_counter": {
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color",
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "friend_label": {
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color",
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "panel_text": {
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color",
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "invite_button_content/button_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "invite_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "invite",
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_invite.invite_screen_content"
  }
}

loom_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: loom_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "loom",

  // ???/?? ??
  "arrow_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_large')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "pattern_book_panel/scroll_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image",
    // 가로/세로 크기
    "size": [ "100% - 13px", "100% - 11px" ],
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -5 ]
  },

  // ???/?? ??
  "pattern_book_panel/bg": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 8px", "100% - 5px" ]
  },

  // ???/?? ??
  "screen_stack_panel/toolbar_anchor": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "center_fold": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "loom_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "top_half_panel": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 25 ]
  },

  // ???/?? ??
  "right_panel/loom_screen_inventory/loom_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "right_panel/common_panel": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 8px", "100% - 28px" ]
  },

  // ???/?? ??
  "right_panel/loom_screen_inventory": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_flag_84df7492",
            // 오버라이드 가능한 변수
            "$background_images": "rainbowpie_ui_inventory_and_container.cell_panel"
          }
        ]
      },
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "container.loom"
            }
          }
        ]
      }
    ]
  }
}

loom_screen_pocket.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: loom_screen_pocket.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "loom_pocket",

  // ???/?? ??
  "right_navigation_tabs/pocket_tab_close_and_help_button": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "right_navigation_tabs/fill": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "right_navigation_tabs/right_tab_loom": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "right_navigation_tabs": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "close_panel": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ "100%", 33 ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "close_background@rainbowpie_ui_inventory.header_background": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "right_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "right_middle",
                    // 가로/세로 크기
                    "size": [ "100% - 4px", 33 ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "close_button@rainbowpie_ui_common.close_button": {
                          // 오버라이드 가능한 변수
                          "$rainbowpie_ui_theme_closebutton_default_color": "$rainbowpie_ui_theme_inventory_header_title_color",
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 10,
                          // 가로/세로 크기
                          "size": [ "100%", "100%" ],
                          // 기준점에서 이동하는 거리
                          "offset": [ 0, 0 ],
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "center",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "center"
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "pattern_scroll_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image"
  },

  // ???/?? ??
  "loom_content_stack_panel": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "inventory_scroll_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image",
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "right_tab_loom": {
    // 오버라이드 가능한 변수
    "$checked_bar_anchor": "right",
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$tab_image_size": [ "100% - 4px", "100%" ],
    // 오버라이드 가능한 변수
    "$tab_image_anchor": "right_middle",
    // 오버라이드 가능한 변수
    "$tab_content_size": [ "100% - 4px", "100% - 8px" ],
    // 오버라이드 가능한 변수
    "$tab_content_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$tab_content_anchor": "right_middle",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": "$rainbowpie_ui_theme_inventory_header_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_alpha": 0.6
  },

  // ???/?? ??
  "right_panel/content/bg": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background"
  },

  // ???/?? ??
  "left_tab_patterns": {
    // 오버라이드 가능한 변수
    "$checked_bar_anchor": "left",
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$tab_image_size": [ "100% - 4px", "100%" ],
    // 오버라이드 가능한 변수
    "$tab_image_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$tab_content_size": [ "100% - 4px", "100% - 8px" ],
    // 오버라이드 가능한 변수
    "$tab_content_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$tab_content_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": "$rainbowpie_ui_theme_inventory_header_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_alpha": 0.6
  },

  // ???/?? ??
  "left_tab_inventory": {
    // 오버라이드 가능한 변수
    "$checked_bar_anchor": "left",
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$tab_image_size": [ "100% - 4px", "100%" ],
    // 오버라이드 가능한 변수
    "$tab_image_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$tab_content_size": [ "100% - 4px", "100% - 8px" ],
    // 오버라이드 가능한 변수
    "$tab_content_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$tab_content_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": "$rainbowpie_ui_theme_inventory_header_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_alpha": 0.6
  },

  // ???/?? ??
  "left_panel/content/bg": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background"
  }
}

manifest_validation_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: manifest_validation_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "manifest_validation",

  // ???/?? ??
  "manifest_validation_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_blur": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "manifest_validation",
    // ?? ??
    "force_render_below": false,
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_manifest_validation.manifest_validation_screen_content"
  }
}

mob_effect_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: mob_effect_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "mob_effect",

  // ???/?? ??
  "mob_effect_screen": {
    // ?? ??
    "close_on_player_hurt": false
  }
}

npc_interact_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: npc_interact_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "npc_interact",

  // ???/?? ??
  "npc_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "npc_interact",
    // ?? ??
    "force_render_below": true,
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_npc_interact.npc_screen_contents",
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_exit",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_exit",
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_cancel",
        // 어떤 동작을 실행할지
        "to_button_id": "button.menu_exit",
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      }
    ]
  },

  // ???/?? ??
  "basic_stack_panel/name_label": {
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_dialog_content_color",
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "basic_stack_panel/appearance_label": {
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_dialog_content_color",
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "npc_message/label": {
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_dialog_content_color",
    // ?? ?? ?
    "locked_color": "$rainbowpie_ui_theme_dialog_content_color",
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "student_message_bubble": {
    // 사용할 이미지 경로
    "texture": ""
  },

  // ???/?? ??
  "student_message_section/point": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "message_model/model": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 15 ]
  },

  // ???/?? ??
  "message_model_window": {
    // 사용할 이미지 경로
    "texture": ""
  },

  // ???/?? ??
  "student_button_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "student_button/button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // 오버라이드 가능한 변수
    "$button_content": "npc_interact.student_button_label_panel"
  },

  // ???/?? ??
  "basic_stack_panel/dialog_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "basic_stack_panel/dialog_post_padding": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "basic_stack_panel/dialog__padding": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "basic_stack_panel/dialog_button": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  }
}

online_safety_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: online_safety_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "online_safety",

  // ???/?? ??
  "ip_safety_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "ip_safety",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_background_animations": [
      "@rainbowpieui_online_safety.exit_animation_push",
      "@rainbowpieui_online_safety.exit_animation_pop"
    ],
    // 오버라이드 가능한 변수
    "$screen_animations": [
      "@rainbowpieui_online_safety.exit_animation_push",
      "@rainbowpieui_online_safety.exit_animation_pop"
    ],
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_cancel",
        // 어떤 동작을 실행할지
        "to_button_id": "button.back",
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_ok",
        // 어떤 동작을 실행할지
        "to_button_id": "button.proceed",
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      }
    ],
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_online_safety.ip_safety_screen_content",
    // 오버라이드 가능한 변수
    "$text_name": "onlinePlay.untrustedIp.title",
    // 오버라이드 가능한 변수
    "$description_text": "onlinePlay.untrustedIp.message"
  },

  // ???/?? ??
  "do_not_show_checkbox/header_description_stack_panel/checkbox_visuals": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "do_not_show_checkbox/header_description_stack_panel/buffer_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "do_not_show_checkbox/header_description_stack_panel/another_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "online_safety_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_ingame": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "online_safety",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_background_animations": [
      "@rainbowpieui_online_safety.exit_animation_push",
      "@rainbowpieui_online_safety.exit_animation_pop"
    ],
    // 오버라이드 가능한 변수
    "$screen_animations": [
      "@rainbowpieui_online_safety.exit_animation_push",
      "@rainbowpieui_online_safety.exit_animation_pop"
    ],
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_cancel",
        // 어떤 동작을 실행할지
        "to_button_id": "button.back",
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_ok",
        // 어떤 동작을 실행할지
        "to_button_id": "button.proceed",
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      }
    ],
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_online_safety.online_safety_screen_content"
  }
}

pack_settings_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: pack_settings_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "pack_settings",

  // ???/?? ??
  "pack_scroll_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "rainbowpieui_pack_settings.scrolling_content"
  },

  // ???/?? ??
  "content_tiering_panel/slider_panel/content_tier_slider": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_sliderbar_enabled": true,
    // 가로/세로 크기
    "size": [ "100% - 10px", 10 ]
  },

  // ???/?? ??
  "content_tiering_panel/label_panel/content_tier_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // 가로/세로 크기
    "size": [ "100%", "default" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 2 ]
  },

  // ???/?? ??
  "content_tiering_panel/label_panel/unsupported_content_tier_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // 가로/세로 크기
    "size": [ "100%", "default" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 2 ]
  },

  // ???/?? ??
  "content_tiering_panel/incompatible_label_panel/label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // 가로/세로 크기
    "size": [ "100%", "default" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ]
  },

  // ???/?? ??
  "scrolling_content/generated_form": {
  },

  // ??? ??
  "scrolling_content": {
    // 가로/세로 크기
    "size": [ "100%", "100%c" ]
  },

  // ???/?? ??
  "screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_blur": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "pack_settings",
    // ?? ??
    "force_render_below": false,
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_pack_settings.main_screen_content"
  }
}

pause_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: pause_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "pause",

  // ???/?? ??
  "quit_button": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "$is_on_3p_server",
            // 오버라이드 가능한 변수
            "$button_text": "menu.disconnect"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "pause_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_watermark": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "pause",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_backup_screen": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_backup_screen_content": "rainbowpieui_pause.pause_screen_content",
    // ?? ??
    "force_render_below": true
  },

  // ???/?? ??
  "player_gamertag": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$text_color"
  },

  // ???/?? ??
  "player_button_content/player_pic_panel": {
    // 가로/세로 크기
    "size": [ 24, "100%" ]
  },

  // ???/?? ??
  "player_gamer_pic": {
    // 가로/세로 크기
    "size": [ 20, 20 ]
  },

  // ???/?? ??
  "player_gamer_pic/player_panel_black_border": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "player_button_content": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ]
  },

  // ???/?? ??
  "player_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 목록 인덱스/현재 항목 정보 제공
        "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "players_collection"
      }
    ]
  },

  // ???/?? ??
  "player_permission_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 가져올 값 이름
            "binding_name": "#permissions_button_visible",
            // 가져온 값을 다른 속성으로 연결
            "binding_name_override": "#enabled"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "player_grid_item_content/player_button_panel/player_permission_button_padding": {
    // 가로/세로 크기
    "size": [ 29, "100%" ],
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "remove",
        // ???/?? ??
        "where": {
          // 가져올 값 이름
          "binding_name": "#permissions_button_visible"
        }
      }
    ]
  },

  // ???/?? ??
  "player_grid_item_content/player_button_panel/player_button_banner/player_banner": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "player_grid_item_content/player_button_panel": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "player_grid_item_content/player_permission_button_panel": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // 가로/세로 크기
    "size": [ "100%c", "100%" ],
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "remove",
        // ???/?? ??
        "where": {
          // 가져올 값 이름
          "binding_name": "#permissions_button_visible"
        }
      }
    ]
  }
}

pdp_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: pdp_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "pdp",

  // ???/?? ??
  "price_panel/offer_prompt_panel/offer_status_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "description_inner_panel/description_stack_panel/languages_panel/label_text_panel/label_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "description_inner_panel/description_stack_panel/players_panel/text_panel/text_stack_panel/note_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "description_inner_panel/description_stack_panel/players_panel/text_panel/text_stack_panel/player_count_button_panel/player_count_range_panel/player_count_range_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "description_inner_panel/description_stack_panel/players_panel/label_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "description_inner_panel/description_stack_panel/genre_panel/text_panel/text_stack_panel/slash_divider": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "description_inner_panel/description_stack_panel/genre_panel/label_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "description_inner_panel/description_stack_panel/tags_panel/label_text_panel/label_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "description_inner_panel/description_stack_panel/title_stack_panel/title_text_panel/title_panel/title_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "language_button_panel/comma": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "player_count_button_panel/comma": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "tag_button_panel/button/label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "appearance_status_content/last_update_panel/last_update_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "realms_incompatable_content/realms_content_stack_panel/realms_incompatable_button_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "glyph_count_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "warning_stack_panel/warning_text_panel/warning_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "description_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "csb_expiration/background/content_stack_panel/text_wrapper/text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "ratings_interact_panel/fill_pad/text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "ratings_interact_panel/title_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "ratings_chart_panel/ratings_chart_content/count_panel/count": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "ratings_chart_panel/ratings_chart_content/rating_text_panel/rating_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "ratings_chart_panel/ratings_chart_content/title/title_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "chart_section/stack/percent": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "chart_section/stack/star_number_panel/star_number": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "section_header/header_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "price_markdown_panel/offer_price": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "coin_purchase_label_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "discount_label/label_panel/label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "smooth_currency_purchase_label/currency_purchase_label_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "currency_purchase_label/currency_purchase_label_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "interact_label_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "download_progress_small/stacker/sizer_text/download_progress_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "interaction_button_content/line1_panel/upsell_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "download_progress/stacker/sizer_text/download_progress_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  }
}

permissions_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: permissions_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "permissions",

  // ???/?? ??
  "permissions_options_grid_item/option_toggle": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_offset": [ 0, 2 ],
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_off",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_on",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_off_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_on_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_off_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_off_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_on_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_on_locked"
  },

  // ???/?? ??
  "permissions_options_stack_panel/permission_level_dropdown": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "permission_level_radio_visitor@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#permission_level_radio_visitor",
          // 오버라이드 가능한 변수
          "$radio_label_text": "permissions.level.visitor"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "permission_level_radio_member@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#permission_level_radio_member",
          // 오버라이드 가능한 변수
          "$radio_label_text": "permissions.level.member"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "permission_level_radio_operator@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#permission_level_radio_operator",
          // 오버라이드 가능한 변수
          "$radio_label_text": "permissions.level.operator"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "permission_level_radio_custom@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#permission_level_radio_custom",
          // 오버라이드 가능한 변수
          "$radio_label_text": "permissions.level.custom"
        }
      }
    ]
  },

  // ???/?? ??
  "banner_background": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_global_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_global_background_alpha"
  },

  // ???/?? ??
  "player_button_content/gamertag_panel/gamertag_label": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ]
  },

  // ???/?? ??
  "player_local_icon": {
    // 가로/세로 크기
    "size": [ 20, 20 ],
    // 사용할 이미지 경로
    "texture": "textures/ui/icon_steve"
  },

  // ???/?? ??
  "player_gamer_pic/player_panel_black_border": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "player_gamer_pic": {
    // 가로/세로 크기
    "size": [ 20, 20 ]
  },

  // ???/?? ??
  "player_button_content": {
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "center",
		// 가로/세로 크기
		"size": [ "100% - 4px", "100% - 4px" ]
  },

  // ???/?? ??
  "selector_area/player_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_bar_left_padding_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_right_padding_size": [ 1, 0 ]
  },

  // ???/?? ??
  "player_grid_item/player_toggle": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "player_toggle": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked"
  },

  // ???/?? ??
  "title_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "ip_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "world_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "gamertag_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "option_state_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "option_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "radio_title_and_icon/radio_title": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "radio_content_with_title_bar/helper_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "permissions_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "permissions",
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_permissions.permissions_screen_content"
  }
}

persona_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: persona_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "persona",

  // ???/?? ??
  "persona_screen_content": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "background_blur_panel@rainbowpieui_persona.background_blur_panel": {}
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "right_side_stack_debug_control": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#is_using_dressing_room_debugging",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // 완전히 제거(공간도 없음)
        "ignored": "$rainbowpie_ui_flag_persona_debug"
      }
    ]
  },

  // ???/?? ??
  "persona_classic_skin_paper_doll": {
    // ?? ??
    "camera_tilt_degrees": 0
  },

  // ???/?? ??
  "popup_dialog_skin_model/paper_doll": {
    // ?? ??
    "camera_tilt_degrees": 0
  },

  // ???/?? ??
  "skin_viewer_panel_skin_model/skin_model": {
    // ?? ??
    "camera_tilt_degrees": 0,
    // ?? ??
    "starting_rotation": 0
  },

  // ???/?? ??
  "popup_dialog__restricted_content_popup": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8,
          // 가로/세로 크기
          "size": [ 204, 132 ],
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialogheader_title": "dr.modal.restricted_content_title",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_content": "rainbowpieui_persona.restricted_content_popup_dialog_content",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_show_background": false,
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialogheader_show_close": false
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background2@rainbowpieui_profile.background_panel_design2": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
        }
      }
    ]
  },

  // ???/?? ??
  "equip_button_content": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ]
  },

  // ???/?? ??
  "cape_button_content/stack_content/content_label_panel/content_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "button_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "persona_skin_pack_panel/pack_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "skin_pack_expand_pack": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "switch_persona_and_classic_repeat_check_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "switch_persona_and_classic_message": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "switch_persona_and_classic_title": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "custom_skin_info_panel_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "limb_side_switcher/title/limb_title": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "piece_section_title_panel/title": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "label_image_button_content/content_label_panel/content_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "sub_category_label_image_button_content/stack_content/content_label_panel/content_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "skin_info_label_panel_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "color_picker_panel/top_bar/title/skin_title": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "loading_progress_bars/loading_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "body_size_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "arm_size_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "usage_limited_right_panel_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "to_realms_plus_screen_realms_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "realms_extra_info_panel_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "appearance_status_panel/appearance_status/label_panel/label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "info_text_box_description_stack_description_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "persona_getting_started_description": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "right_side_stack_debug_control/debug_preview_skin_name": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "right_side_stack_debug_control/debug_skin_names/debug_active_name": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "right_side_stack_debug_control/debug_skin_names/debug_current_name": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "special_offer_banner/banner_info/special_banner_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "title_rarity_right_title": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "title_rarity_positionable_title": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "equip_piece_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "realms_redeem_button_content/realms_text_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "realms_savings_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "roamable_status_notification_panel/appearance_status_notification": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_05aab186"
  },

  // ???/?? ??
  "appearance_status_panel": {

  },

  // ???/?? ??
  "persona_getting_started_title": {
    // 기준점에서 이동하는 거리
    "offset": [ 2, 2 ],
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_title_text_color"
  },

  // ???/?? ??
  "right_panel_classic_skins_title/title_panel/title": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_title_text_color"
  },

  // ???/?? ??
  "right_panel_classic_skins_title/author_panel/author": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_title_text_color"
  },

  // ???/?? ??
  "select_custom_skin_stack": {
    // 가로/세로 크기
    "size": [ "100% - 2px", 20 ]
  },

  // ???/?? ??
  "select_custom_skin": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_form_fitting_button"
  },

  // ???/?? ??
  "cape_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "subcategory_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "realms_redeem_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "realms_subscription_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "offer_coin_purchase_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "equip_piece_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "right_realms_pack_button_more_info": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "info_popup_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "info_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "preview_skin_full": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "color_picker_right_cycle": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "color_picker_left_cycle": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "leave_color_picker": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "left_limb_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "right_limb_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "skin_color_picker": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "color_grid_item": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "popup_dialog_choose_skin_type_panel/choose_skin_type_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "persona_skin_pack_panel/pack_body/skin_pack_panel/expand_view_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "get_more_skins_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "offer_real_money_purchase_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "achievement_text_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "popup_dialog_close_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "see_skin_pack_in_store": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "none_piece_option_panel/none_piece_option_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "usage_limited_settings_profile_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "differences_popup_ok_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "see_more_skins_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "purchase_buttons/emote_play_again_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "emote_offer_section_panel/remove_emote_option_panel/none_emote_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "scroll_section": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_size": [ 4, "100% - 6px" ]
  },

  // ???/?? ??
  "right_side_classic_skin_featured_panel": {
    // 오버라이드 가능한 변수
    "$right_side_dialog_bg_size": [ "100%", "100%c" ]
  },

  // ???/?? ??
  "persona_getting_started_panel": {
    // 오버라이드 가능한 변수
    "$right_side_dialog_bg_size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "piece_list_right_side_section": {
    // 오버라이드 가능한 변수
    "$dialog_bg_size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "right_side_dialog_panel": {
    // 오버라이드 가능한 변수
    "$right_side_dialog_bg_size|default": [ "100%", "100%" ]
  },

  // ???/?? ??
  "dialog_background_object_content": {
    // 오버라이드 가능한 변수
    "$dialog_bg_size|default": [ "100%", "100%" ],
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha"
  },

  // ???/?? ??
  "dialog_background_object": {
    // 사용할 이미지 경로
    "texture": ""
  },

  // ???/?? ??
  "persona_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "persona",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_blur": "(not $rainbowpie_ui_flag_d28dfac0)",
    // 오버라이드 가능한 변수
    "$screen_bg_content": "common.empty_panel",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_d28dfac0",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_screen_anims": []
      }
    ]
  }
}

play_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: play_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "play",

  // ???/?? ??
  "play_screen": {
    // 오버라이드 가능한 변수
    "$is_pregame": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_ingame": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "play",
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_play.play_screen_content"
  },

  // REF

  "third_party_server_info_panel/server_info_stack_panel/join_server_button": {
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_flag_play_bottom_panel and (not $game_pad))",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "additional_server_info_panel/server_info_stack_panel/join_server_button": {
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_flag_play_bottom_panel and (not $game_pad))",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "server_scroll_panel/stack_panel/add_server_button": {
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_flag_play_bottom_panel and (not $game_pad))"
  },

  // ???/?? ??
  "add_server_toggle_button": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_button_checked_locked_hover"
  },

  // ???/?? ??
  "manually_added_servers_scrolling_content/padding_3": {
    // 가로/세로 크기
    "size": [ "100%", 1 ]
  },

  // ???/?? ??
  "more_servers_world_item/additional_server_toggle_base": {
    // 가로/세로 크기
    "size": [ "fill", "100%" ]
  },

  // ???/?? ??
  "more_servers_world_item/network_server_world_edit_button": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "more_servers_world_item": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "network_server_world_edit_button",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "padding_0": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ 1, 1 ],
              // 완전히 제거(공간도 없음)
              "ignored": "$ignore_add_servers"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "network_server_world_edit_button2@common_buttons.dark_content_button": {
              // 오버라이드 가능한 변수
              "$focus_id": "edit_server",
              // 오버라이드 가능한 변수
              "$focus_override_right": "right_side",
              // 완전히 제거(공간도 없음)
              "ignored": "$ignore_add_servers",
              // 오버라이드 가능한 변수
              "$button_image_size": [ "100%", "100%" ],
              // 오버라이드 가능한 변수
              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
              // 오버라이드 가능한 변수
              "$pressed_button_name": "button.menu_network_server_world_edit",
              // 오버라이드 가능한 변수
              "$button_content": "play.edit_icon",
              // 오버라이드 가능한 변수
              "$button_tts_header": "accessibility.play.editServer",
              // 가로/세로 크기
              "size": [ "100%y - 1px", "100%" ],
              // 겹치는 순서(숫자 클수록 위)
              "layer": 2,
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 목록 인덱스/현재 항목 정보 제공
                  "binding_type": "collection_details",
                  // 목록 이름
                  "binding_collection_name": "$collection_name"
                },
                {
                  // 가져올 값 이름
                  "binding_name": "#network_world_button_enabled",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#enabled",
                  // 목록 이름
                  "binding_collection_name": "$collection_name",
                  // 목록 데이터를 반복 연결
                  "binding_type": "collection"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "manually_added_servers_scrolling_content/padding_0": {
    // 가로/세로 크기
    "size": [ "100%", 0.5 ]
  },

  // ???/?? ??
  "manually_added_servers_scrolling_content/padding_1": {
    // 가로/세로 크기
    "size": [ "100%", 1 ]
  },

  // ???/?? ??
  "manually_added_servers_scrolling_content/more_servers_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "manually_added_servers_scrolling_content": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "more_servers_label",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "more_servers_title@rainbowpieui_play.list_title": {
              // 가로/세로 크기
              "size": [ "100%", 14 ],
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_list_title_text": "thirdPartyWorld.Additional"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "featured_server_world_item": {
    // 가로/세로 크기
    "size": [ "100%", 38 ]
  },

  // ???/?? ??
  "server_toggle_base": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$border_texture": "",
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked"
  },

  // ???/?? ??
  "servers_content_panel/more_servers_divider": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "server_scroll_panel/stack_panel/padding_1": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "servers_content_panel/featured_servers_panel/padding_3": {
    // 가로/세로 크기
    "size": [ "100%", 0.5 ]
  },

  // ???/?? ??
  "servers_content_panel/featured_servers_panel/padding_2": {
    // 가로/세로 크기
    "size": [ "100%", 1 ]
  },

  // ???/?? ??
  "servers_content_panel/featured_servers_panel/padding_1": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "servers_content_panel/featured_servers_panel/featured_servers_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "servers_content_panel/featured_servers_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "featured_servers_label",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "featured_servers_title@rainbowpieui_play.list_title": {
              // 가로/세로 크기
              "size": [ "100%", 14 ],
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_list_title_text": "thirdPartyWorld.Featured"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "server_scroll_panel/stack_panel": {
    // 가로/세로 크기
    "size": [ "100% - 2px", "100%c + 1px" ]
  },

  // ???/?? ??
  "crossplatform_disabled_panel": {
    // "bindings": []
  },

  // ???/?? ??
  "server_scroll_panel/stack_panel/padding_0": {
    // 가로/세로 크기
    "size": [ "100%", 1.5 ]
  },

  // ???/?? ??
  "show_servers_panel/divider_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "realm_warning_tip": {
  },

  // ???/?? ??
  "server_scroll_content/severs_panel/offset_panel": {
  },

  // ???/?? ??
  "server_scroll_content/feature_server_message_panel": {
  },

  // ???/?? ??
  "server_scroll_content": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "network_world_item": {
    // 가로/세로 크기
    "size": [ "100%", 29 ]
  },

  // ???/?? ??
  "network_world_item/network_world_item_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "label_content_template/label_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "label_content_template": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "label_panel",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "friends_realms_title@rainbowpieui_play.list_title": {
              // 보이기/숨기기(공간 유지)
              "visible": "$label_panel_visible",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_list_title_text": "$label_content_label"
            }
          },
          {
            // ???/?? ??
            "padding_title": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ 1, 0.5 ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "friends_scroll_panel/stack_panel/joinable_realms_panel/padding_1": {
    // 가로/세로 크기
    "size": [ "100%", 1 ]
  },

  // ???/?? ??
  "friends_scroll_panel/stack_panel/joinable_realms_panel/no_realms_grid": {
  },

  // ???/?? ??
  "sign_in_to_view_realms_button_friends": {
  },

  // ???/?? ??
  "friends_scroll_panel/stack_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "friends_crossplatform_disabled_panel",
        // ?? ??
        "operation": "insert_before",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "friends_crossplatform_disable_spacer2@play.crossplatform_disable_spacer": {
              // 가로/세로 크기
              "size": [ 1, 0.5 ],
              // 완전히 제거(공간도 없음)
              "ignored": "(not $is_realms_enabled)"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "friends_scroll_panel/stack_panel/joinable_realms_panel/sign_in_to_view_realms_button_friends": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ]
  },

  // ???/?? ??
  "friends_scroll_panel/stack_panel/joinable_realms_panel/friends_realms_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "friends_scroll_panel/stack_panel/joinable_realms_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "friends_realms_label",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "friends_realms_title@rainbowpieui_play.list_title": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_list_title_text": "$tts_section_header",
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 가져올 값 이름
                  "binding_name": "#friends_realms_visible",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#visible"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "friends_scroll_panel/stack_panel/friends_crossplatform_disabled_panel": {
  },

  // ???/?? ??
  "friends_scroll_panel/stack_panel/friends_crossplatform_disable_spacer": {
    // 가로/세로 크기
    "size": [ 1, 0.5 ]
  },

  // ???/?? ??
  "notification_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "add_friend_and_invite_panel/padding_2": {

  },
  // ???/?? ??
  "add_friend_and_invite_panel/notification_button_panel": {

  },

  // ???/?? ??
  "add_friend_and_invite_panel/join_by_code_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ]
  },

  // ???/?? ??
  "add_friend_and_invite_panel/add_friend_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ]
  },

  // ???/?? ??
  "friends_scroll_panel/stack_panel/padding_0": {
    // 가로/세로 크기
    "size": [ "100%", 1 ]
  },

  // ???/?? ??
  "friends_scroll_panel/stack_panel/header_button": {
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_flag_play_bottom_panel and (not $game_pad))"
  },

  // ???/?? ??
  "version": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "development_version": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "copyright": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "high_ping_popup_content_stack_panel/text_line_2": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "high_ping_popup_content_stack_panel/text_line_1": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "join_by_code_popup_help_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "join_by_code_popup_header_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "server_scroll_content/feature_server_message_panel/feature_server_message_panel/label_panel_layout/label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "friends_scroll_panel/stack_panel/joinable_realms_panel/placeholder_loading_friends_panel/loading_friends_realms_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "world_list_label_with_color_panel/list_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "world_list_label_panel/list_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "loading_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "light_loading_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "light_centered_loading_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "game_tip_item_panel/label_panel/realms_warning_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "notification_button_label_panel/notification_button_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "common_button_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "legacy_world_content_status_area_panel/world_storage_content_panel/world_storage_information/legacy_world_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "news_section_panel/read_more_panel/text_stack_panel/news_title_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "news_section_panel/news_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "news_text_panel/contents_news": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "games_section_panel/description_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "games_factory_object/games_factory_panel/bottom_panel/bottom_panel": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "games_factory_object/games_factory_panel/top_panel/game_title_panel/game_subtitle": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "games_factory_object/games_factory_panel/top_panel/game_title_panel/game_title": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "description_section_panel/description_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "description_text_panel/contents_description": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "screenshots_section_panel/screenshots_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "text_icon_number_panel/stack_panel/number": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "text_icon_number_panel/text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "add_server_info_panel/server_info_stack_panel/add_server_description": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "add_server_info_panel/server_info_stack_panel/add_server_title": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "ping_rate_panel/concurrency_stack/player_count": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "more_servers_label_panel/list_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "blocked_multiplayer_privileges_panel/background/label_panel_layout/label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "information_panel/background/label_panel_layout/label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "label_content_template/label_panel/label_panel_layout/label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "network_world_type_icon": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "unread_story_count_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "realms_list_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "realms_sign_in_prompt_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "collection_world_screenshot/screenshot_picture/gradient_container_stacked_panel/solid_image_realmsplus_expired/exclamationmark": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "worlds_stack_panel/realms_multiplayer_blocked_panel/open_uri_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "worlds_stack_panel/realms_multiplayer_blocked_panel/open_account_setting_button_gamecore": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "worlds_stack_panel/padding_0": {
    // 가로/세로 크기
    "size": [ "100%", 1 ]
  },

  // ???/?? ??
  "worlds_stack_panel/realms_panel/padding_1": {
    // 가로/세로 크기
    "size": [ "100%", 1 ]
  },

  // ???/?? ??
  "label_background": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha"
  },

  // ???/?? ??
  "dark_label_background": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha"
  },

  // ???/?? ??
  "worlds_stack_panel/realms_panel/placeholder_personal_realms_panel/loading_friends_realms_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "worlds_stack_panel/realms_panel/realms_nintendo_first_realm_purchase_panel": {
  },


  // ???/?? ??
  "worlds_stack_panel/realms_panel/realms_trial_panel": {
  },

  // ???/?? ??
  "common_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_pane_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$scroll_bar_left_padding_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_right_padding_size": [ 0, 0 ]
  },

  // ???/?? ??
  "realms_world_item/leave_realm_panel/leave_friends_realm_button": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "realms_world_item/leave_realm_panel": {
    // 가로/세로 크기
    "size": [ "100%c + 1px", "100% + 1px" ],
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "leave_friends_realm_button",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "leave_friends_realm_button2@common_buttons.dark_content_button": {
              // 오버라이드 가능한 변수
              "$button_image_size": [ "100%", "100% - 1px" ],
              // 오버라이드 가능한 변수
              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
              // 오버라이드 가능한 변수
              "$pressed_button_name": "button.menu_realms_world_item_remove",
              // 오버라이드 가능한 변수
              "$button_content": "play.realms_remove_icon",
              // 오버라이드 가능한 변수
              "$button_tts_header": "accessibility.play.leaveRealm",
              // 가로/세로 크기
              "size": [ "100%y - 1px", "100%" ],
              // 기준점(어디에서 시작할지)
              "anchor_from": "top_right",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "top_right",
              // 겹치는 순서(숫자 클수록 위)
              "layer": 2,
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 목록 인덱스/현재 항목 정보 제공
                  "binding_type": "collection_details",
                  // 목록 이름
                  "binding_collection_name": "$realms_worlds_collection_name"
                },
                {
                  // 가져올 값 이름
                  "binding_name": "#cross_platform_enabled",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#enabled"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "realms_world_item": {
    // 가로/세로 크기
    "size": [ "100%", 29 ]
  },

  // ???/?? ??
  "realms_world_item/feed_panel_with_unread_count/feed_panel/realms_feed_button": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "realms_world_item/feed_panel_with_unread_count": {
    // 가로/세로 크기
    "size": [ "100%y + 1px", "100%" ],
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "realms_feed_button2@common_buttons.dark_content_button": {
              // 오버라이드 가능한 변수
              "$button_image_size": [ "100%", "100% - 1px" ],
              // 오버라이드 가능한 변수
              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
              // 오버라이드 가능한 변수
              "$pressed_button_name": "button.menu_realms_feed",
              // 오버라이드 가능한 변수
              "$button_content": "play.realms_feed_button_content",
              // 오버라이드 가능한 변수
              "$button_tts_header": "#realms_feed_button_tts_header",
              // 가로/세로 크기
              "size": [ "100%y - 1px", "100% + 1px" ],
              // 기준점(어디에서 시작할지)
              "anchor_from": "top_right",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "top_right",
              // 겹치는 순서(숫자 클수록 위)
              "layer": 2,
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 목록 인덱스/현재 항목 정보 제공
                  "binding_type": "collection_details",
                  // 목록 이름
                  "binding_collection_name": "$realms_worlds_collection_name"
                },
                {
                  // 가져올 값 이름
                  "binding_name": "#menu_realms_feed_visible",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#visible"
                },
                {
                  // 가져올 값 이름
                  "binding_name": "#menu_realms_feed_enabled",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#enabled",
                  // 목록 이름
                  "binding_collection_name": "$realms_worlds_collection_name",
                  // 목록 데이터를 반복 연결
                  "binding_type": "collection"
                },
                {
                  // 가져올 값 이름
                  "binding_name": "#realms_feed_button_tts_header",
                  // 목록 이름
                  "binding_collection_name": "$realms_worlds_collection_name",
                  // 목록 데이터를 반복 연결
                  "binding_type": "collection"
                },
                {
                  // 가져올 값 이름
                  "binding_name": "#cross_platform_enabled",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#enabled"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "realms_world_item/edit_panel": {
    // 가로/세로 크기
    "size": [ "100%y", "100% + 1px" ],
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "realms_world_edit_button",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "realms_world_edit_button2@common_buttons.dark_content_button": {
              // 오버라이드 가능한 변수
              "$button_image_size": [ "100%", "100% - 1px" ],
              // 오버라이드 가능한 변수
              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
              // 오버라이드 가능한 변수
              "$pressed_button_name": "button.menu_realms_world_item_edit",
              // 오버라이드 가능한 변수
              "$button_content": "play.realms_slots_edit_icon",
              // 오버라이드 가능한 변수
              "$button_tts_header": "accessibility.play.editRealm",
              // 가로/세로 크기
              "size": [ "100%y - 1px", "100%" ],
              // 기준점(어디에서 시작할지)
              "anchor_from": "top_right",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "top_right",
              // 겹치는 순서(숫자 클수록 위)
              "layer": 2,
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 목록 인덱스/현재 항목 정보 제공
                  "binding_type": "collection_details",
                  // 목록 이름
                  "binding_collection_name": "$realms_worlds_collection_name"
                },
                {
                  // 가져올 값 이름
                  "binding_name": "#cross_platform_enabled",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#enabled"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "realms_world_item/edit_panel/realms_world_edit_button": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "realms_world_item/realms_button_panel/realms_world_item_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ]
  },

  // ???/?? ??
  "create_on_realms_button_panel/create_on_realms_button": {
  },

  // ???/?? ??
  "worlds_stack_panel/realms_panel/realms_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "sign_in_realms_image": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "worlds_stack_panel/realms_panel/sign_in_to_view_realms_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ]
  },

  // ???/?? ??
  "worlds_stack_panel/realms_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "realms_label",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "realms_title@rainbowpieui_play.list_title": {
              // 완전히 제거(공간도 없음)
              "ignored": "$world_picker_screen",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_list_title_text": "$tts_section_header",
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 가져올 값 이름
                  "binding_name": "#realm_label_visible",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#visible"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "worlds_stack_panel/worlds_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "worlds_stack_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "worlds_label",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "worlds_title@rainbowpieui_play.list_title": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_list_title_text": "playscreen.worlds",
              // 조건에 따라 변수 값을 바꾸기
              "variables": [
                {
                  // 이 조건이 맞으면 적용
                  "requires": "($pre_release and not $is_editor_mode_enabled)",
                  // 오버라이드 가능한 변수
                  "$rainbowpie_localui_list_title_text": "playscreen.beta_worlds"
                },
                {
                  // 이 조건이 맞으면 적용
                  "requires": "$is_editor_mode_enabled",
                  // 오버라이드 가능한 변수
                  "$rainbowpie_localui_list_title_text": "playscreen.editor.worlds"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "world_list_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "local_world_text_panel/text_indent": {
    // 기준점에서 이동하는 거리
    "offset": [ 2, 0 ],
    // 가로/세로 크기
    "size": [ "100% - 6px", "100% - 6px" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "left_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "left_middle"
  },

  // ???/?? ??
  "world_screenshot_base": {
    // 사용할 이미지 경로
    "texture": ""
  },

  // ???/?? ??
  "local_world_item": {
    // 가로/세로 크기
    "size": [ "100%", 30 ]
  },

  // ???/?? ??
  "local_world_item/header_button_panel": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$secondary_header_button": "rainbowpieui_play.cloud_upload_and_edit_world_stack_panel"
  },

  // ???/?? ??
  "worlds_stack_panel/header_button/buttons": {
    // 오버라이드 가능한 변수
    "$primary_header_button": "rainbowpieui_play.create_new_world_button_panel",
    // 오버라이드 가능한 변수
    "$secondary_header_button": "rainbowpieui_play.quick_play_button_panel",
    // 오버라이드 가능한 변수
    "$ternary_header_button": "rainbowpieui_play.import_world_button"
  },

  // ???/?? ??
  "header_button_panel/buttons/primary_panel/primary": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "header_button_panel/buttons": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "header_button_panel_opt_in/buttons/primary_panel/primary": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "header_button_panel_opt_in/buttons": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "worlds_stack_panel/header_button": {
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 완전히 제거(공간도 없음)
    "ignored": "(($rainbowpie_ui_flag_play_bottom_panel and (not $game_pad)) or $local_world_upload)"
  },

  // ???/?? ??
  "sign_in_to_view_realms_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "realms_world_item_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "network_world_item_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "local_world_item_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_content_size": [ "100% - 1px", "100% - 2px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "legacy_world_item_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "beta_retail_world_item_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "worlds_stack_panel/realms_panel/realms_trial_panel/realms_world_item_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "worlds_stack_panel/realms_panel/realms_nintendo_first_realm_purchase_panel/realms_world_item_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "quick_play_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "create_new_world_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "sync_legacy_worlds_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "open_account_setting_button_gamecore": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "no_local_worlds_launch_help": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "join_by_code_popup_join_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "high_ping_popup_join_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "high_ping_popup_cancel_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "add_friend_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "join_by_code_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  }
}

pocket_containers.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: pocket_containers.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "pocket_containers",

  // ???/?? ??
  "inventory_panel/scrolling_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image",
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "generic_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "panel/header": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "panel/bg": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header_pocket": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_inventory_title": "chestScreen.header.player",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_container_title": "$container_title"
            }
          }
        ]
      }
    ]
  }
}

popup_dialog.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: popup_dialog.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "popup_dialog",

  // ???/?? ??
  "modal_label_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scrolling_pane_size": [ "100% - 1px", "100%" ]
  },

  // ???/?? ??
  "modal_dialog_popup/modal_input/modal_bg_buttons": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_6bb756a3",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 100
  },

  // ???/?? ??
  "modal_label_text/text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_dialog_content_color"
  },

  // ???/?? ??
  "modal_dialog_with_buttons": {
    // 가로/세로 크기
    "size": [ 200, 120 ],
    // 오버라이드 가능한 변수
    "$button": "common.empty_panel",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$three_buttons_visible",
        // 오버라이드 가능한 변수
        "$button": "rainbowpie_popup_dialog.three_buttons_panel"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$destructive_three_buttons_visible",
        // 오버라이드 가능한 변수
        "$button": "rainbowpie_popup_dialog.three_buttons_panel"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$two_buttons_visible",
        // 오버라이드 가능한 변수
        "$button": "rainbowpie_popup_dialog.two_buttons_panel"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$destructive_two_buttons_visible",
        // 오버라이드 가능한 변수
        "$button": "rainbowpie_popup_dialog.two_buttons_panel"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$single_button_visible",
        // 오버라이드 가능한 변수
        "$button": "rainbowpie_popup_dialog.single_button_panel"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "$no_buttons_visible",
        // 오버라이드 가능한 변수
        "$button": "rainbowpie_popup_dialog.no_button_panel"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "popup_dialog_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 50,
          // ?? (R,G,B,A)
          "color": "$rainbowpie_ui_theme_dialog_background_color",
          // ???
          "alpha": "$rainbowpie_ui_theme_dialog_background_alpha",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "title_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 가로/세로 크기
                "size": [ "100% - 8px", 18 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title_text@popup_dialog.modal_title_text": {
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 1 ],
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // ?? ??
                      "text_alignment": "center",
                      // 가로/세로 크기
                      "size": [ "100% - 30px", "default" ],
                      // ??
                      "font_type": "$rainbowpie_ui_theme_global_font_name",
                      // ?? ?? ?
                      "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_dialog_title_color",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title_text_default@popup_dialog.modal_title_text": {
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 1 ],
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // ?? ??
                      "text_alignment": "center",
                      // 가로/세로 크기
                      "size": [ "100% - 30px", "default" ],
                      // ??
                      "font_type": "$rainbowpie_ui_theme_global_font_name",
                      // ?? ?? ?
                      "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_dialog_title_color",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 보여줄 글자
                      "text": "rainbowpie.ui.dialog.title_default",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "$visibility_source_control_name",
                          // 계산식/참조 값
                          "source_property_name": "(#modal_title_text = '')",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "close_button_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [ 15, 15 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 1 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#close_button_visible",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                      ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "close_button@rainbowpie_ui_common.close_button": {
                            // 기준점에서 이동하는 거리
                            "offset": [ 0, 0 ],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "center",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "center",
                            // 오버라이드 가능한 변수
                            "$close_button_to_button_id": "$popup_dialog_escape_button_name"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "content_panel": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 가로/세로 크기
                "size": [ "100% - 8px", "100% - 44px" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 18 ],
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_dialog_content_background_color",
                // ???
                "alpha": "$rainbowpie_ui_theme_dialog_content_background_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "text@popup_dialog.modal_label_panel": {
                      // 오버라이드 가능한 변수
                      "$rainbowpie_localui_scrollbar_enabled": true,
                      // 오버라이드 가능한 변수
                      "$scrolling_pane_size": [ "100% - 1px", "100%" ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "button@$button": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 가로/세로 크기
                "size": [ "100% - 7px", 22 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, -3.5 ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "modal_dialog_popup/modal_input": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "rainbowpie_dialog@rainbowpie_popup_dialog.modal_dialog_with_buttons": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_6bb756a3)",
              // 오버라이드 가능한 변수
              "$visibility_source_control_name|default": "rainbowpie_dialog",
              // 겹치는 순서(숫자 클수록 위)
              "layer": 100
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "background2@rainbowpie_popup_dialog.background_panel_design2": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_6bb756a3)"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "background@rainbowpie_popup_dialog.background_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "$rainbowpie_ui_flag_6bb756a3"
            }
          }
        ]
      }
    ]
  }
}

profile_card.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: profile_card.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "profile_card",

  // ???/?? ??
  "dialog_content_with_skin/skin_pane/paper_doll_panel/paper_doll": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "skin_pane",
        // 계산식/참조 값
        "source_property_name": "#gesture_delta_source",
        // 결과가 들어갈 속성
        "target_property_name": "#gesture_delta_source"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "skin_pane",
        // 계산식/참조 값
        "source_property_name": "#gesture_mouse_delta_x",
        // 결과가 들어갈 속성
        "target_property_name": "#gesture_mouse_delta_x"
      },
      {
        // 가져올 값 이름
        "binding_name": "#player_uuid"
      }
    ]
  },

  // ???/?? ??
  "xbl_dialog_scrolling_content/add_friend_button": {
    // 가로/세로 크기
    "size": [ "100%", 27 ],
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 2px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "toggle_option": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_enabled": true
  },

  // ???/?? ??
  "xbl_dialog_scrolling_content/report_button": {
    // 가로/세로 크기
    "size": [ "100%", 27 ],
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 2px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "xbl_dialog_scrolling_content/dropdown_visibility_panel/friends_dropdown": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_rainbowpiebutton_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "friend@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#friend_option",
          // 오버라이드 가능한 변수
          "$radio_label_text": "xbox.profile.friend"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "favorite@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#favorite_option",
          // 오버라이드 가능한 변수
          "$radio_label_text": "xbox.profile.favorite"
        }
      }
    ]
  },

  // ???/?? ??
  "xbl_dialog_scrolling_content/remove_friend_button": {
    // 가로/세로 크기
    "size": [ "100%", 27 ],
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 2px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // 완전히 제거(공간도 없음)
    "ignored": "$is_current_profile"
  },

  // ???/?? ??
  "player_gamer_pic/player_panel_black_border": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "player_gamer_pic": {
    // 가로/세로 크기
    "size": [ 34, 34 ]
  },

  // ???/?? ??
  "unfriend_button_panel/text_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "report_button_content/report_label/report_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "toggle_option/label_panel/toggle_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "xbl_dialog_scrolling_content/real_name_message": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "xbl_dialog_scrolling_content/title_presence_info": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "platform_dialog_scrolling_content/title_presence_info": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "platform_info/platform_labels/platform_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "profile_labels/gamertag_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "gamer_score_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "x_radio_visuals/label_panel/radio_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "profile_card_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_blur": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "profile_card",
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_profile_card.profile_card_screen_content"
  }
}

profile_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: profile_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "profile",

  // ???/?? ??
  "popup_dialog__delete_persona": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dialog_panel@rainbowpie_ui_dialog.dialog_panel": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 8,
          // 가로/세로 크기
          "size": [ 204, 132 ],
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialogheader_title": "dr.modal.persona_delete_confirm_title",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_content": "rainbowpieui_profile.delete_persona_dialog_content",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_dialog_show_background": false,
          // 오버라이드 가능한 변수
          "$close_button_to_button_id": "button.close_dialog"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background2@rainbowpieui_profile.background_panel_design2": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
        }
      }
    ]
  },

  // ???/?? ??
  "lower_button_label_section/persona_label": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_05aab186"
  },

  // ???/?? ??
  "lower_button_section/differences_info_button": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_05aab186"
  },

  // ???/?? ??
  "edit_appearance_preset_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "delete_appearance_preset_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "preset_arrow_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "skin_retry_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "edit_appearance_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "delete_appearance_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "differences_information_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "settings_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "differences_popup_ok_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "select_default_character_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "skin_model_renderer": {
    // ?? ??
    "camera_tilt_degrees": 0,
    // ?? ??
    "starting_rotation": 0
  },

  // ???/?? ??
  "profile_screen_main_content/featured_section": {
    // 완전히 제거(공간도 없음)
    "ignored": "($store_disabled or $rainbowpie_ui_flag_05aab186)"
  },

  // ???/?? ??
  "profile_screen_main_content/featured_section_disabled_padding": {
    // 완전히 제거(공간도 없음)
    "ignored": "((not $store_disabled) or $rainbowpie_ui_flag_05aab186)"
  },

  // ???/?? ??
  "profile_screen_background_content": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "profile_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "profile",
    // "$rainbowpie_localui_screenbackground_blur": true,
    "$screen_bg_content": "common.empty_panel"
  }
}

progress_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: progress_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "progress",

  // ???/?? ??
  "overworld_loading_progress_screen": {
    // 오버라이드 가능한 변수
    "$use_loading_bars": false,
    // ?? ??
    "render_only_when_topmost": false,
    // 오버라이드 가능한 변수
    "$is_showing_menu": false,
    // 오버라이드 가능한 변수
    "$force_render_below": false,
    // ?? ??
    "is_showing_menu": "$is_showing_menu",
    // ?? ??
    "force_render_below": "$force_render_below",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_31e1a20e",
        // 오버라이드 가능한 변수
        "$is_showing_menu": false,
        // 오버라이드 가능한 변수
        "$force_render_below": true,
        // 오버라이드 가능한 변수
        "$rainbowpie_ui_feature_background_blur": false,
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_screenbackground_ingame": false
      }
    ]
  },

  // ???/?? ??
  "nether_loading_progress_screen": {
    // 오버라이드 가능한 변수
    "$use_loading_bars": false,
    // ?? ??
    "render_only_when_topmost": false,
    // 오버라이드 가능한 변수
    "$is_showing_menu": false,
    // 오버라이드 가능한 변수
    "$force_render_below": false,
    // ?? ??
    "is_showing_menu": "$is_showing_menu",
    // ?? ??
    "force_render_below": "$force_render_below",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_31e1a20e",
        // 오버라이드 가능한 변수
        "$is_showing_menu": false,
        // 오버라이드 가능한 변수
        "$force_render_below": true,
        // 오버라이드 가능한 변수
        "$rainbowpie_ui_feature_background_blur": false,
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_screenbackground_ingame": false
      }
    ]
  },

  // ???/?? ??
  "theend_loading_progress_screen": {
    // 오버라이드 가능한 변수
    "$use_loading_bars": false,
    // ?? ??
    "render_only_when_topmost": false,
    // 오버라이드 가능한 변수
    "$is_showing_menu": false,
    // 오버라이드 가능한 변수
    "$force_render_below": false,
    // ?? ??
    "is_showing_menu": "$is_showing_menu",
    // ?? ??
    "force_render_below": "$force_render_below",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_31e1a20e",
        // 오버라이드 가능한 변수
        "$is_showing_menu": false,
        // 오버라이드 가능한 변수
        "$force_render_below": true,
        // 오버라이드 가능한 변수
        "$rainbowpie_ui_feature_background_blur": false,
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_screenbackground_ingame": false
      }
    ]
  },

  // ???/?? ??
  "realms_stories_enabled_loading_progress_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_ingame": true,
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_progress.world_loading_progress_screen"
  },

  // ???/?? ??
  "world_convert_modal_progress_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_ingame": true,
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_progress.world_loading_progress_screen"
  },

  // ???/?? ??
  "simple_popup_dialog_base": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // ?? ?? ?
    "max_size": [ "100%", "100%" ],
    // ?? ?? ?
    "min_size": [ "100%", "100%" ],
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "rainbowpieui_progress_dialog@rainbowpieui_progress.simple_popup_dialog_base": {}
          }
        ]
      },
      {
        // ?? ?? ??
        "array_name": "button_mappings",
        // ?? ??
        "operation": "replace",
        // ???/?? ??
        "where": {
          // 어떤 입력을 받을지
          "from_button_id": "button.menu_cancel",
          // 어떤 동작을 실행할지
          "to_button_id": "modal.escape",
          // 입력 시점(pressed 등)
          "mapping_type": "global"
        },
        // ??? ?
        "value": {
          // 어떤 입력을 받을지
          "from_button_id": "button.menu_cancel",
          // 어떤 동작을 실행할지
          "to_button_id": "button.leave",
          // 입력 시점(pressed 등)
          "mapping_type": "global"
        }
      }
    ]
  },

  // ???/?? ??
  "simple_popup_dialog_base/dialog_background_hollow_3": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "modal_progress_screen": {
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_progress.modal_screen_content"
  },

  // ???/?? ??
  "progress_screen_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "modal_progress_panel_with_cancel/common_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "progress_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "progress",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_ingamebg_ignored": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_ignored": "$force_render_below",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_override_ignored": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_background_bsf_need": "(not $force_render_below)"
  },

  // ???/?? ??
  "mobile_data_icon_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "cancel_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "retry_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "abort_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "world_loading_progress_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_ingame": true,
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_progress.world_loading_progress_screen"
  },

  // ???/?? ??
  "world_saving_progress_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_background_animations": [
      "@common.screen_exit_animation_push_fade",
      "@common.screen_exit_animation_pop_fade"
    ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_ingame": true,
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_progress.world_saving_progress_screen",
    // 조건에 따라 변수 값을 바꾸기
    "variables": []
  }
}

realms_pending_invitations.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: realms_pending_invitations.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "realms_pending_invitations",

  // ???/?? ??
  "banner_panel": {
    // 오버라이드 가능한 변수
    "$banner_image": "rainbowpieui_realms_pending_invitations.dark_banner"
  },

  // ???/?? ??
  "banner_panel_hover": {
    // 오버라이드 가능한 변수
    "$banner_image": "rainbowpieui_realms_pending_invitations.dark_banner_hover"
  },

  // ???/?? ??
  "panel_text": {
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color",
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "realms_pending_invitations_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "realms_pending_invitations",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_blur": true,
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_realms_pending_invitations.realms_invitation_screen_content"
  }
}

realms_plus_ended_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: realms_plus_ended_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "realms_plus_ended",

  // ???/?? ??
  "main_content_panel/main_content_stack_panel/text_panel/text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "subscription_ended_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "realms_plus_ended",
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_realms_plus_ended.subscription_ended_screen_content"
  }
}

realmsplus_upgrade_notice_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: realmsplus_upgrade_notice_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "realmsplus_upgrade_notice_screen",

  // ???/?? ??
  "content/wall_of_text/the_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "content/buttons_row": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "realmsplus_upgrade_notice_screen",
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_realmsplus_upgrade_notice_screen.main_content"
  }
}

redstone_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: redstone_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "redstone",

  // ???/?? ??
  "panel_crafter": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "crafter_root_panel@rainbowpieui_redstone.crafter_root_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_84df7492)"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "panel_crafter/root_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492"
  },

  // ???/?? ??
  "item_dropper_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "redstone_panel_top_half": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 19 ]
  },

  // ???/?? ??
  "panel": {
    // 오버라이드 가능한 변수
    "$container_type|default": "null",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "redstone_root_panel@rainbowpieui_redstone.redstone_root_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "((not $rainbowpie_ui_flag_84df7492) or ($container_type = 'hopper'))"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "hopper_root_panel@rainbowpieui_redstone.hopper_root_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "((not $rainbowpie_ui_flag_84df7492) or (not ($container_type = 'hopper')))"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "panel/root_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492"
  },

  // ???/?? ??
  "panel/root_panel/common_panel": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 8px", "100% - 28px" ]
  },

  // ???/?? ??
  "panel/root_panel/redstone_screen_inventory": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "$container_title"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "hopper_screen": {
    // 오버라이드 가능한 변수
    "$container_type": "hopper"
  },

  // ???/?? ??
  "dropper_screen": {
    // 오버라이드 가능한 변수
    "$container_type": "dropper"
  },

  // ???/?? ??
  "dispenser_screen": {
    // 오버라이드 가능한 변수
    "$container_type": "dispenser"
  },

  // ???/?? ??
  "crafter_screen": {
    // 오버라이드 가능한 변수
    "$container_type": "crafter"
  }
}

resource_packs_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: resource_packs_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "resource_packs",

  // ???/?? ??
  "panel_bg/black_background": {
    // 사용할 이미지 경로
    "texture": "textures/ui/Black",
    // ???
    "alpha": 0.5
  },

  // ???/?? ??
  "panel_bg/gray": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "selected_stack_panel/offset_3": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_840d1a5c"
  },

  // ???/?? ??
  "selected_stack_panel/realms_packs_title_button": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_840d1a5c"
  },

  // ???/?? ??
  "selected_stack_panel/realms_packs_section": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_840d1a5c"
  },

  // ???/?? ??
  "selected_stack_panel/offset_4": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_840d1a5c"
  },

  // ???/?? ??
  "selected_stack_panel/unowned_packs_title_button": {
    // 완전히 제거(공간도 없음)
    "ignored": "($education_edition or $rainbowpie_ui_flag_840d1a5c)"
  },

  // ???/?? ??
  "selected_stack_panel/unowned_packs_section": {
    // 완전히 제거(공간도 없음)
    "ignored": "($education_edition or $rainbowpie_ui_flag_840d1a5c)"
  },

  // ???/?? ??
  "selected_pack_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_control|default": "rp_search_text_box_display_text",
    // 보이기/숨기기(공간 유지)
    "visible": true,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#name",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$button_collection_name"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('\"' + #name - '§0' - '§1' - '§2' - '§3' - '§4' - '§5' - '§6' - '§7' - '§8' - '§9' - '§a' - '§b' - '§c' - '§d' - '§e' - '§f' - '§g' - '§h' - '§i' - '§j' - '§k' - '§l' - '§m' - '§n' - '§o' - '§p' - '§q' - '§r' - '§s' - '§t' - '§u' - '§v' - '§w' - '§x' - '§y' - '§z' + '\"')",
        // 결과가 들어갈 속성
        "target_property_name": "#formatted_name"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "$rainbowpie_localui_resource_packs_search_box_control",
        // 계산식/참조 값
        "source_property_name": "#item_name",
        // 결과가 들어갈 속성
        "target_property_name": "#output_text"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((not ((#formatted_name - #output_text) = #formatted_name)) or (#output_text = ''))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "available_pack_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_control|default": "rp_search_text_box_display_text",
    // 보이기/숨기기(공간 유지)
    "visible": true,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#name",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "$button_collection_name"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('\"' + #name - '§0' - '§1' - '§2' - '§3' - '§4' - '§5' - '§6' - '§7' - '§8' - '§9' - '§a' - '§b' - '§c' - '§d' - '§e' - '§f' - '§g' - '§h' - '§i' - '§j' - '§k' - '§l' - '§m' - '§n' - '§o' - '§p' - '§q' - '§r' - '§s' - '§t' - '§u' - '§v' - '§w' - '§x' - '§y' - '§z' + '\"')",
        // 결과가 들어갈 속성
        "target_property_name": "#formatted_name"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "$rainbowpie_localui_resource_packs_search_box_control",
        // 계산식/참조 값
        "source_property_name": "#item_name",
        // 결과가 들어갈 속성
        "target_property_name": "#output_text"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((not ((#formatted_name - #output_text) = #formatted_name)) or (#output_text = ''))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "selected_stack_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_type|default": "null",
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "top_panel",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "rainbowpie_resource_packs_screen@rainbowpieui_resource_packs.resource_packs_screen": {}
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "selected_stack_panel/world_template_option_lock_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "(($rainbowpie_ui_flag_54edd49d and (not ($rainbowpie_localui_resource_packs_type = 'null'))) or (not $is_world_create and not $is_template_create and not $is_world_edit))",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ]
  },

  // ???/?? ??
  "selected_stack_panel/top_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_flag_54edd49d and (not ($rainbowpie_localui_resource_packs_type = 'null')))",
    // 가로/세로 크기
    "size": [ "100%", 25 ]
  },

  // ???/?? ??
  "selected_stack_panel/offset_0": {
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_flag_54edd49d and (not ($rainbowpie_localui_resource_packs_type = 'null')))"
  },

  // ???/?? ??
  "selected_stack_panel/selected_packs_title_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_flag_54edd49d and (not ($rainbowpie_localui_resource_packs_type = 'null')))"
  },

  // ???/?? ??
  "selected_stack_panel/selected_pack_section": {
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_flag_54edd49d and (not ($rainbowpie_localui_resource_packs_type = 'null')))"
  },

  // ???/?? ??
  "selected_stack_panel/offset_1": {
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_flag_54edd49d and (not ($rainbowpie_localui_resource_packs_type = 'null')))"
  },

  // ???/?? ??
  "selected_stack_panel/available_packs_title_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_flag_54edd49d and (not ($rainbowpie_localui_resource_packs_type = 'null')))"
  },

  // ???/?? ??
  "selected_stack_panel/available_packs_section": {
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_flag_54edd49d and (not ($rainbowpie_localui_resource_packs_type = 'null')))"
  },

  // ???/?? ??
  "resource_packs_toggle_button_control": {
    // 오버라이드 가능한 변수
    "$icon_theme_dir|default": "($rainbowpie_ui_path_theme + '/icon/settings')",
    // 오버라이드 가능한 변수
    "$icon_size|default": [ 15, 15 ],
    // 오버라이드 가능한 변수
    "$icon_texture_name|default": "null",
    // 오버라이드 가능한 변수
    "$icon_group_name|default": "null",
    // 오버라이드 가능한 변수
    "$icon_offset|default": [ 5, 0 ],
    // 오버라이드 가능한 변수
    "$icon_anchor_from|default": "left_middle",
    // 오버라이드 가능한 변수
    "$icon_anchor_to|default": "left_middle",
    // 오버라이드 가능한 변수
    "$state_collection_name|default": "null",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "section_icon": {
              // 이미지 표시
              "type": "image",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_feature_settings_themedIcon)",
              // 기준점(어디에서 시작할지)
              "anchor_from": "$icon_anchor_from",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "$icon_anchor_to",
              // 기준점에서 이동하는 거리
              "offset": "$icon_offset",
              // 사용할 이미지 경로
              "texture": "($icon_theme_dir + '/' + $icon_group_name + '/' + $icon_texture_name)",
              // 가로/세로 크기
              "size": "$icon_size",
              // 겹치는 순서(숫자 클수록 위)
              "layer": 3,
              // ?? (R,G,B,A)
              "color": "$text_color",
              // ???
              "alpha": 1
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "tooltip_image_wrapper@resource_packs.tooltip_image_wrapper": {
              // 완전히 제거(공간도 없음)
              "ignored": "($state_collection_name = 'null')",
              // 기준점(어디에서 시작할지)
              "anchor_from": "right_middle",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "right_middle",
              // 오버라이드 가능한 변수
              "$button_collection_name": "$state_collection_name"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "resource_packs_toggle_button_control/icon_border": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_feature_settings_themedIcon"
  },

  // ???/?? ??
  "resource_packs_toggle_button_control/cycling_icon": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_feature_settings_themedIcon"
  },

  // ???/?? ??
  "resource_packs_toggle_button_control/tab_button_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // 기준점에서 이동하는 거리
    "offset": "$rainbowpie_localui_this_offset",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_this_offset": [ 34, 0 ],
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_feature_settings_themedIcon",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_this_offset": [ 28, 0 ]
      }
    ]
  },

  // ???/?? ??
  "resource_packs_section_toggle_base": {
    // 오버라이드 가능한 변수
    "$icon_texture_name": "global_texture",
    // 오버라이드 가능한 변수
    "$icon_group_name": "general",
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_hover",
    // 가로/세로 크기
    "size": [ "100%", "25px" ]
  }
}

safe_zone_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: safe_zone_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "safe_zone",

  // ???/?? ??
  "instructions_text/inner_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "safe_zone_screen/main_content_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "safe_zone_screen": {
    // 오버라이드 가능한 변수
    "$is_publish": false,
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          { "background_panel@rainbowpieui_safe_zone.background_panel": {} },
          { "dialog_panel@rainbowpieui_safe_zone.dialog_panel": {} }
        ]
      }
    ]
  }
}

scoreboards.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: scoreboards.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "scoreboard",

  // ???/?? ??
  "scoreboard_sidebar": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_flag_scoreboard_default_font",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_theme_global_font_name": "default",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_theme_global_font_backup_name": "default"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "player_icon_panel/player_icon": {
    // 가로/세로 크기
    "size": [ "80% + 4px", "80% + 4px" ]
  },

  // ???/?? ??
  "player_icon_panel/player_icon/player_panel_black_border": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "player_score": {
    // ?? ??
    "shadow": false,
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "player_name": {
    // ?? ??
    "shadow": false,
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "list_objective_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "scoreboard_sidebar/main/displayed_objective": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "scoreboard_sidebar_player": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "scoreboard_sidebar_score": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "player_rank_panel/player_rank_bg/player_rank": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, -1 ],
    // ?? ?? ??
    "font_scale_factor": 1.2,
    // ??
    "font_type": "MinecraftTen",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "player_rank_panel/player_rank_bg": {
    // 가로/세로 크기
    "size": [ "100%y", "100% - 1px" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "left_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "left_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha"
  },

  // ???/?? ??
  "player_panel/rank_base": {
    // 가로/세로 크기
    "size": [ "100%y", "100%" ]
  },

  // ???/?? ??
  "base_player_button": {
    // 가로/세로 크기
    "size": [ "fill", "100%" ],
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  }
}

screenshot_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: screenshot_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "screenshot",

  // ???/?? ??
  "screenshot_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "screenshot",
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_screenshot.screenshot_screen_content",
    // 오버라이드 가능한 변수
    "$use_loading_bars": false,
    // ?? ??
    "force_render_below": true,
    // ?? ??
    "is_showing_menu": false,
    // ?? ??
    "should_steal_mouse": true,
    // ?? ??
    "absorbs_input": true
  }
}

server_form.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: server_form.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "server_form",

  // 다른 템플릿을 가져와서 확장(상속)
  "long_form@rainbowpieui_server_form.long_form": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_backup_screen": false
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "custom_form@rainbowpieui_server_form.custom_form": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_backup_screen": false
  },

  // ???/?? ??
  "third_party_server_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "server_form",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_backup_screen": true,
    // ?? ??
    "force_render_below": true,
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_server_form.main_screen_content",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_backup_screen_content": "rainbowpieui_server_form.main_screen_content"
  }
}

settings_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: settings_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "settings",

  // ???/?? ??
  "selector_stack_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "xbox_live_panel": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $include_controls_and_settings_sections or not $is_xboxlive_enabled or not $rainbowpie_ui_flag_settings_account_panel)",
              // 가로/세로 크기
              "size": [ "100%", 50 ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // ???/?? ??
                  "background": {
                    // 이미지 표시
                    "type": "image",
                    // 사용할 이미지 경로
                    "texture": "textures/ui/White",
                    // 가로/세로 크기
                    "size": [ "100%", "100%" ],
                    // ???
                    "alpha": "$rainbowpie_ui_theme_text_background_alpha",
                    // ?? (R,G,B,A)
                    "color": "$rainbowpie_ui_theme_text_background_color",
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": -1,
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // ???/?? ??
                        "gamerpic": {
                          // 특수 렌더러(그라디언트/플레이어 등)
                          "type": "custom",
                          // 커스텀 렌더러 종류
                          "renderer": "profile_image_renderer",
                          // ???
                          "alpha": 2.0,
                          // 가로/세로 크기
                          "size": [ 48, 48 ],
                          // 기준점에서 이동하는 거리
                          "offset": [ 1, 0 ],
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "left_middle",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "left_middle",
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 2,
                          // 게임 값과 연결하는 규칙 목록
                          "bindings": [
                            {
                              // 가져올 값 이름
                              "binding_name": "#profile_image_options"
                            }
                          ]
                        }
                      },
                      {
                        // ???/?? ??
                        "alex_icon": {
                          // 이미지 표시
                          "type": "image",
                          // 사용할 이미지 경로
                          "texture": "textures/ui/icon_alex",
                          // 가로/세로 크기
                          "size": [ 48, 48 ],
                          // 기준점에서 이동하는 거리
                          "offset": [ 1, 0 ],
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "left_middle",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "left_middle",
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 1
                        }
                      },
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "gamertag_label@rainbowpie_ui_common.text_label": {
                          // 기준점에서 이동하는 거리
                          "offset": [ 51, 6 ],
                          // 가로/세로 크기
                          "size": [ "100% - 51px", 20 ],
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "top_left",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "top_left",
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 1,
                          // 보여줄 글자
                          "text": "#gamertag_label",
                          // ?? ?? ??
                          "font_scale_factor": 1.5,
                          // 게임 값과 연결하는 규칙 목록
                          "bindings": [
                            {
                              // 가져올 값 이름
                              "binding_name": "#gamertag_label"
                            },
                            {
                              // 가져올 값 이름
                              "binding_name": "#logged_in",
                              // 가져온 값을 다른 속성으로 연결
                              "binding_name_override": "#visible"
                            }
                          ]
                        }
                      },
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "manage_account_button@settings_common.action_button": {
                          // 오버라이드 가능한 변수
                          "$button_image_size": [ "100% - 1px", "100% - 1px" ],
                          // 오버라이드 가능한 변수
                          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                          // 완전히 제거(공간도 없음)
                          "ignored": "($is_ios or $is_android)",
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "top_left",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "top_left",
                          // 오버라이드 가능한 변수
                          "$pressed_button_name": "manage_account_button",
                          // 오버라이드 가능한 변수
                          "$button_text": "options.manageAccount",
                          // 가로/세로 크기
                          "size": [ "100% - 50px", 23 ],
                          // 기준점에서 이동하는 거리
                          "offset": [ 49.5, 26.5 ],
                          // 게임 값과 연결하는 규칙 목록
                          "bindings": [
                            {
                              // 가져올 값 이름
                              "binding_name": "#logged_in",
                              // 가져온 값을 다른 속성으로 연결
                              "binding_name_override": "#visible"
                            }
                          ]
                        }
                      },
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "sign_out_action_button@settings_common.action_button": {
                          // 오버라이드 가능한 변수
                          "$button_image_size": [ "100% - 1px", "100% - 1px" ],
                          // 오버라이드 가능한 변수
                          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                          // 완전히 제거(공간도 없음)
                          "ignored": "(not $is_ios and not $is_android)",
                          // ??/???
                          "enabled": "$is_pregame",
                          // 오버라이드 가능한 변수
                          "$pressed_button_name": "sign_out_button",
                          // 오버라이드 가능한 변수
                          "$button_text": "xbox.signOutLong",
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "top_left",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "top_left",
                          // 가로/세로 크기
                          "size": [ "100% - 50px", 23 ],
                          // 기준점에서 이동하는 거리
                          "offset": [ 49.5, 26.5 ],
                          // 게임 값과 연결하는 규칙 목록
                          "bindings": [
                            {
                              // 가져올 값 이름
                              "binding_name": "#logged_in",
                              // 가져온 값을 다른 속성으로 연결
                              "binding_name_override": "#visible"
                            }
                          ]
                        }
                      },
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "gamertag_label_offline@rainbowpie_ui_common.text_label": {
                          // 기준점에서 이동하는 거리
                          "offset": [ 51, 6 ],
                          // 가로/세로 크기
                          "size": [ "100% - 51px", 20 ],
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "top_left",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "top_left",
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 1,
                          // 보여줄 글자
                          "text": "#player_name",
                          // ?? ?? ??
                          "font_scale_factor": 1.5,
                          // 게임 값과 연결하는 규칙 목록
                          "bindings": [
                            {
                              // 가져올 값 이름
                              "binding_name": "#player_name"
                            },
                            {
                              // 가져올 값 이름
                              "binding_name": "#not_logged_in",
                              // 가져온 값을 다른 속성으로 연결
                              "binding_name_override": "#visible"
                            }
                          ]
                        }
                      },
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "sign_in_action_button@settings_common.action_button": {
                          // 오버라이드 가능한 변수
                          "$button_image_size": [ "100% - 1px", "100% - 1px" ],
                          // 오버라이드 가능한 변수
                          "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                          // ??/???
                          "enabled": "$is_pregame",
                          // 오버라이드 가능한 변수
                          "$pressed_button_name": "sign_in_button",
                          // 오버라이드 가능한 변수
                          "$button_text": "xbox.signin",
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "top_left",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "top_left",
                          // 가로/세로 크기
                          "size": [ "100% - 50px", 23 ],
                          // 기준점에서 이동하는 거리
                          "offset": [ 49.5, 26.5 ],
                          // 게임 값과 연결하는 규칙 목록
                          "bindings": [
                            {
                              // 가져올 값 이름
                              "binding_name": "#not_logged_in",
                              // 가져온 값을 다른 속성으로 연결
                              "binding_name_override": "#visible"
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            // ???/?? ??
            "rp_spacer_1": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $include_controls_and_settings_sections or not $is_xboxlive_enabled or not $rainbowpie_ui_flag_settings_account_panel)",
              // 가로/세로 크기
              "size": [ 1, 1 ]
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "perspective_dropdown@settings_common.option_dropdown": {
              // 오버라이드 가능한 변수
              "$option_generic_panel_size": [ "100%", 25 ],
              // 오버라이드 가능한 변수
              "$show_option_label": false,
              // 오버라이드 가능한 변수
              "$option_dropdown_size": [ "100%", 25 ],
              // 보이기/숨기기(공간 유지)
              "visible": "($include_controls_and_settings_sections and $touch)",
              // 완전히 제거(공간도 없음)
              "ignored": "($is_holographic and $is_reality_mode or $is_pregame or not $rainbowpie_ui_flag_settings_quick_perspective)",
              // 오버라이드 가능한 변수
              "$dropdown_content": "general_section.third_person_dropdown_content",
              // 오버라이드 가능한 변수
              "$dropdown_area": "content_area",
              // 오버라이드 가능한 변수
              "$dropdown_name": "third_person_dropdown",
              // 오버라이드 가능한 변수
              "$option_enabled_binding_name": "#third_person_dropdown_enabled",
              // 오버라이드 가능한 변수
              "$options_dropdown_toggle_label_binding": "#third_person_dropdown_toggle_label",
              // 오버라이드 가능한 변수
              "$dropdown_scroll_content_size": [ "100%", "200%" ],

              // 오버라이드 가능한 변수
              "$rainbowpie_localui_dropdown_show_button": false,
              // 오버라이드 가능한 변수
              "$option_dropdown_type": "rainbowpie_ui_common.rainbowpie_ui_dropdown",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_dropdown_offset": [ 0, 2 ],
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_dropdown_content": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_dropdown_radio_image": true,
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_dropdown_radio_image_texture": "($rainbowpie_ui_path_theme + '/icon/settings/firstperson')",
                    // 오버라이드 가능한 변수
                    "$toggle_state_binding_name": "#thirdperson_radio_first",
                    // 오버라이드 가능한 변수
                    "$radio_label_text": "options.thirdperson.firstperson"
                  }
                },
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_dropdown_radio_image": true,
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_dropdown_radio_image_texture": "($rainbowpie_ui_path_theme + '/icon/settings/thirdpersonback')",
                    // 오버라이드 가능한 변수
                    "$toggle_state_binding_name": "#thirdperson_radio_third_back",
                    // 오버라이드 가능한 변수
                    "$radio_label_text": "options.thirdperson.thirdpersonback"
                  }
                },
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_dropdown_radio_image": true,
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_dropdown_radio_image_texture": "($rainbowpie_ui_path_theme + '/icon/settings/thirdpersonfront')",
                    // 오버라이드 가능한 변수
                    "$toggle_state_binding_name": "#thirdperson_radio_third_front",
                    // 오버라이드 가능한 변수
                    "$radio_label_text": "options.thirdperson.thirdpersonfront"
                  }
                }
              ]
            }
          },
          {
            // ???/?? ??
            "rp_spacer_2": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 보이기/숨기기(공간 유지)
              "visible": "($include_controls_and_settings_sections and $touch)",
              // 완전히 제거(공간도 없음)
              "ignored": "($is_holographic and $is_reality_mode or $is_pregame or not $rainbowpie_ui_flag_settings_quick_perspective)",
              // 가로/세로 크기
              "size": [ 1, 1 ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "selector_stack_panel/controls_and_settings_selector_pane": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "video_button",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "graphics_button@rainbowpieui_general_section.graphics_button": {
              // 오버라이드 가능한 변수
              "$toggle_group_forced_index": 3504
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "raytracing_button@rainbowpieui_general_section.raytracing_button": {
              // 오버라이드 가능한 변수
              "$toggle_group_forced_index": 3503
            }
          }
        ]
      },
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "rainbowpie_spacer_1": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ 1, 1 ]
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "rainbowpie_selector_group_label_1@settings_common.selector_group_label": {
              // 완전히 제거(공간도 없음)
              "ignored": "($rainbowpie_ui_feature_markbest)",
              // 보여줄 글자
              "text": "rainbowpie.ui.global.title"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "uitest_button@rainbowpieui_general_section.uitest_button": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_debug)",
              // 오버라이드 가능한 변수
              "$toggle_group_forced_index": 3201
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "theme_button@rainbowpieui_general_section.theme_button": {
              // 오버라이드 가능한 변수
              "$toggle_group_forced_index": 3501
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "module_button@rainbowpieui_general_section.module_button": {
              // 오버라이드 가능한 변수
              "$toggle_group_forced_index": 3502
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "about_button@rainbowpieui_general_section.about_button": {
              // 오버라이드 가능한 변수
              "$toggle_group_forced_index": 3503
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "section_content_panels/general_and_controls_sections": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "video_section",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "graphics_section@rainbowpieui_general_section.graphics_section": {}
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "raytracing_section@rainbowpieui_general_section.raytracing_section": {}
          }
        ]
      },
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          { "uitest_tab_section@rainbowpieui_general_section.uitest_tab_section": { "ignored": "(not $rainbowpie_ui_debug)", "visible": false } },
          { "theme_section@rainbowpieui_general_section.theme_section": { "visible": false } },
          { "module_section@rainbowpieui_general_section.module_section": { "visible": false } },
          { "about_section@rainbowpieui_general_section.about_section": { "visible": false } }
        ]
      }
    ]
  },

  // ???/?? ??
  "section_header_panels/general_and_controls_sections": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          { "global_texture_pack_header@rainbowpieui_general_section.global_texture_pack_header": { "visible": false } }
        ]
      }
    ]
  },

  // ???/?? ??
  "section_header_panels/world_sections": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          { "level_texture_pack_header@rainbowpieui_world_section.level_texture_pack_header": { "visible": false } },
          { "addon_header@rainbowpieui_world_section.addon_header": { "visible": false } }
        ]
      }
    ]
  },

  // ???/?? ??
  "section_content_panels/general_and_controls_sections/language_section": {
    // 완전히 제거(공간도 없음)
    "ignored": false
  },

  // ???/?? ??
  "selector_stack_panel/controls_and_settings_selector_pane/language_button": {
    // 완전히 제거(공간도 없음)
    "ignored": false
  },

  // ???/?? ??
  "selector_stack_panel/controls_and_settings_selector_pane/selector_group_label_2": {
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_feature_markbest)"
  },

  // ???/?? ??
  "selector_stack_panel/controls_and_settings_selector_pane/spacer_04_no_spatial": {
    // 가로/세로 크기
    "size": [ 1, 1 ]
  },

  // ???/?? ??
  "selector_stack_panel/controls_and_settings_selector_pane/spacer_05_no_spatial": {
    // 가로/세로 크기
    "size": [ 1, 1 ]
  },

  // ???/?? ??
  "selector_stack_panel/controls_and_settings_selector_pane/selector_group_label_1": {
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_feature_markbest)"
  },

  // ???/?? ??
  "selector_stack_panel/controls_and_settings_selector_pane/spacer_1_no_spatial": {
    // 가로/세로 크기
    "size": [ 1, 1 ]
  },

  // ???/?? ??
  "selector_stack_panel/spacer_0": {
    // 완전히 제거(공간도 없음)
    "ignored": "((not $include_world_section) or $rainbowpie_ui_feature_markbest)"
  },

  // ???/?? ??
  "selector_stack_panel/controls_and_settings_selector_pane/selector_group_label_3": {
    // 가로/세로 크기
    "size": [ 1, 1 ],
    // 완전히 제거(공간도 없음)
    "ignored": "($is_publish or $rainbowpie_ui_feature_markbest)"
  },

  // ???/?? ??
  "selector_stack_panel/controls_and_settings_selector_pane/spacer_4_no_spatial": {
    // 가로/세로 크기
    "size": [ 1, 1 ]
  }
}

sidebar_navigation.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: sidebar_navigation.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "sidebar_navigation",

  // ???/?? ??
  "content_view/content_view_stack/sidebar_view_stack": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "divider",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "padding": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $is_sidebar_navigation_enabled)",
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ 2, 2 ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "sidebar_views/sidebar_view_conent/verbose_side_bar_view_modal/verbose_sidebar_view": {
    // 오버라이드 가능한 변수
    "$sidebar_view_size": [ 143, "100%" ]
  },

  // ???/?? ??
  "sidebar_section_scroll_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_size": [ 0, "100% - 8px" ],
    // 오버라이드 가능한 변수
    "$scroll_bar_left_padding_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_right_padding_size": [ 0, 0 ]
  },

  // ???/?? ??
  "verbose_toggle": {
    // 오버라이드 가능한 변수
    "$content_toggle_label_font_type": "$rainbowpie_ui_theme_global_font_name"
  },

  // ???/?? ??
  "verbose_button_content/button_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "verbose_screen_nav_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "sidebar_view_content_panel/verbose_view_exit": {
    // 오버라이드 가능한 변수
    "$search_filter_sort_bg_alpha": 0
  },

  // ???/?? ??
  "sidebar_view_content_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "sidebar_and_blur_background_panel@rainbowpieui_sidebar_navigation.sidebar_and_blur_background_panel": {}
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "sidebar_divider": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "sidebar_toggle": {
    // 오버라이드 가능한 변수
    "$unchecked_locked_texture": "",
    // 오버라이드 가능한 변수
    "$checked_locked_texture": "",
    // 오버라이드 가능한 변수
    "$default_texture": "",

    // 오버라이드 가능한 변수
    "$default_checked_texture_color": [ 1.0, 1.0, 1.0 ],
    // 오버라이드 가능한 변수
    "$default_checked_texture_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$hover_texture": "textures/ui/White",
    // 오버라이드 가능한 변수
    "$hover_texture_color": [ 1.0, 1.0, 1.0 ],
    // 오버라이드 가능한 변수
    "$hover_texture_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$hover_checked_texture_color": [ 1.0, 1.0, 1.0 ],
    // 오버라이드 가능한 변수
    "$hover_checked_texture_alpha": 0.5
  },

  // ???/?? ??
  "edge_bar": {
    // 사용할 이미지 경로
    "texture": ""
  },

  // ???/?? ??
  "verbose_sidebar_expand_section_bg": {
    // 사용할 이미지 경로
    "texture": ""
  },

  // ???/?? ??
  "sidebar_view_content_panel/view_stack_panel/sidebar_view": {
    // 사용할 이미지 경로
    "texture": ""
  },

  // ???/?? ??
  "sidebar_views/sidebar_view_conent/simple_sidebar_view": {
    // 오버라이드 가능한 변수
    "$sidebar_view_size": [ 32, "100%" ]
  },

  // ???/?? ??
  "content_view/content_view_stack/sidebar_view_stack/divider": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "sidebar_view": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "sidebar_content",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "screen_content@rainbowpie_ui_common.screen_content": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_screen_content": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "content_view@sidebar_navigation.content_view": {}
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "sidebar_view/content_view": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  }
}

sign_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: sign_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "sign",

  // ???/?? ??
  "sign_background": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, -5 ]
  },

  // ???/?? ??
  "sign_screen_content": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "button_panel": {
              // 줄맞춤 컨테이너: 가로/세로로 자동 배치
              "type": "stack_panel",
              // 쌓는 방향(가로/세로)
              "orientation": "horizontal",
              // 가로/세로 크기
              "size": [ 185, 30 ],
              // 기준점에서 이동하는 거리
              "offset": [ 0, 68 ],
              // 기준점(어디에서 시작할지)
              "anchor_from": "center",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "center",
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "done_button@common_buttons.light_text_button": {
                    // 오버라이드 가능한 변수
                    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                    // 오버라이드 가능한 변수
                    "$pressed_button_name": "button.menu_exit",
                    // 오버라이드 가능한 변수
                    "$button_text": "gui.done",
                    // 가로/세로 크기
                    "size": [ "fill", "100%" ]
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "base_sign_text_multiline": {
    // 입력 키/버튼과 동작 연결
    "button_mappings": [
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_select",
        // 어떤 동작을 실행할지
        "to_button_id": "$text_edit_box_selected_to_button_id",
        // ?? ??
        "handle_select": true,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_select",
        // 어떤 동작을 실행할지
        "to_button_id": "$text_edit_box_selected_to_button_id",
        // ?? ??
        "handle_select": false,
        // ?? ??
        "handle_deselect": true,
        // 입력 시점(pressed 등)
        "mapping_type": "global",
        // ?? ??
        "consume_event": false
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_ok",
        // 어떤 동작을 실행할지
        "to_button_id": "$text_edit_box_selected_to_button_id",
        // ?? ??
        "handle_select": true,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "button.menu_cancel",
        // 어떤 동작을 실행할지
        "to_button_id": "$text_edit_box_deselected_to_button_id",
        // ?? ??
        "handle_select": false,
        // ?? ??
        "handle_deselect": true,
        // 입력 시점(pressed 등)
        "mapping_type": "global"
      },
      {
        // 어떤 동작을 실행할지
        "to_button_id": "$text_edit_box_hovered_button_id",
        // 입력 시점(pressed 등)
        "mapping_type": "pressed"
      },
      {
        // 어떤 입력을 받을지
        "from_button_id": "$text_edit_box_clear_from_button_id",
        // 어떤 동작을 실행할지
        "to_button_id": "$text_edit_box_clear_to_button_id",
        // ?? ??
        "handle_select": false,
        // ?? ??
        "handle_deselect": false,
        // 입력 시점(pressed 등)
        "mapping_type": "focused"
      }
    ]
  },

  // ???/?? ??
  "sign_screen_content/invisible_exit_background": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "sign_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "sign",
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_sign.sign_screen_content",
    // ?? ??
    "force_render_below": true,
    // ?? ??
    "close_on_player_hurt": false
  }
}

smithing_table_2_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: smithing_table_2_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "smithing_table_2",

  // ???/?? ??
  "arrow_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_large')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "cross_out_icon_image": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/crossout')"
  },

  // ???/?? ??
  "upgrade_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "icon_and_text_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "smithing_table_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "smithing_table_root_panel@rainbowpieui_smithing_table_2.smithing_table_root_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_84df7492)"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "smithing_table_panel/root_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492"
  },

  // ???/?? ??
  "smithing_table_panel/root_panel/toolbar_anchor": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "smithing_table_panel/root_panel/common_panel": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 8px", "100% - 28px" ]
  },

  // ???/?? ??
  "smithing_table_panel/root_panel/smithing_table_screen_inventory": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "container.smithing_table.upgrade"
            }
          }
        ]
      }
    ]
  }
}

smithing_table_2_screen_pocket.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: smithing_table_2_screen_pocket.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "smithing_table_2_pocket",

  // ???/?? ??
  "crafting_arrow": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_inactive')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "cross_out_image": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/crossout')"
  },

  // ???/?? ??
  "right_navigation_tabs/pocket_tab_close_and_help_button": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "right_navigation_tabs/fill": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "right_navigation_tabs/right_tab_smithing_table": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "right_navigation_tabs": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "close_panel": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ "100%", 33 ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "close_background@rainbowpie_ui_inventory.header_background": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "right_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "right_middle",
                    // 가로/세로 크기
                    "size": [ "100% - 4px", 33 ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "close_button@rainbowpie_ui_common.close_button": {
                          // 오버라이드 가능한 변수
                          "$rainbowpie_ui_theme_closebutton_default_color": "$rainbowpie_ui_theme_inventory_header_title_color",
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 10,
                          // 가로/세로 크기
                          "size": [ "100%", "100%" ],
                          // 기준점에서 이동하는 거리
                          "offset": [ 0, 0 ],
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "center",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "center"
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "smithing_table_contents_panel": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "inventory_scroll_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image",
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "upgrade_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "right_tab_smithing_table": {
    // 오버라이드 가능한 변수
    "$checked_bar_anchor": "right",
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$tab_image_size": [ "100% - 4px", "100%" ],
    // 오버라이드 가능한 변수
    "$tab_image_anchor": "right_middle",
    // 오버라이드 가능한 변수
    "$tab_content_size": [ "100% - 4px", "100% - 8px" ],
    // 오버라이드 가능한 변수
    "$tab_content_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$tab_content_anchor": "right_middle",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": "$rainbowpie_ui_theme_inventory_header_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_alpha": 0.6
  },

  // ???/?? ??
  "right_panel/content/bg": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background"
  },

  // ???/?? ??
  "left_tab_inventory": {
    // 오버라이드 가능한 변수
    "$checked_bar_anchor": "left",
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$tab_image_size": [ "100% - 4px", "100%" ],
    // 오버라이드 가능한 변수
    "$tab_image_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$tab_content_size": [ "100% - 4px", "100% - 8px" ],
    // 오버라이드 가능한 변수
    "$tab_content_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$tab_content_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": "$rainbowpie_ui_theme_inventory_header_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_alpha": 0.6
  },

  // ???/?? ??
  "left_panel/content/bg": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background"
  }
}

start_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: start_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "start",

  // ???/?? ??
  "start_screen": {
    // 오버라이드 가능한 변수
    "$is_pregame": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_ingame": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_watermark": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "start",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_backup_screen": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_backup_screen_content": "rainbowpieui_start.start_screen_content",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_flag_8dcce82d)",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_localui_watermark_offset": [ 0, -50 ]
          }
        ]
      }
    ]
  }
}

stonecutter_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: stonecutter_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "stonecutter",

  // ???/?? ??
  "arrow_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_large')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "stone_book_panel/scroll_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image",
    // 가로/세로 크기
    "size": [ "100% - 13px", "100% - 11px" ],
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -5 ]
  },

  // ???/?? ??
  "stone_book_panel/bg": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 8px", "100% - 5px" ]
  },

  // ???/?? ??
  "screen_stack_panel/toolbar_anchor": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "center_fold": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "stonecutter_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "top_half_panel": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 25 ]
  },

  // ???/?? ??
  "right_panel/stonecutter_screen_inventory/stonecutter_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "right_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "stonecutter_inventory_root_panel@rainbowpieui_stonecutter.stonecutter_inventory_root_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_84df7492)"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "right_panel/common_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492",
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 8px", "100% - 28px" ]
  },

  // ???/?? ??
  "right_panel/stonecutter_screen_inventory": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_flag_84df7492",
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "container.stonecutter"
            }
          }
        ]
      }
    ]
  }
}

stonecutter_screen_pocket.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: stonecutter_screen_pocket.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "stonecutter_pocket",

  // ???/?? ??
  "vertical_arrow_icon": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_down_large')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "right_navigation_tabs/close": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "right_navigation_tabs": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "close_panel": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ "100%", 33 ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "close_background@rainbowpie_ui_inventory.header_background": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "right_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "right_middle",
                    // 가로/세로 크기
                    "size": [ "100% - 4px", 33 ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "close_button@rainbowpie_ui_common.close_button": {
                          // 오버라이드 가능한 변수
                          "$rainbowpie_ui_theme_closebutton_default_color": "$rainbowpie_ui_theme_inventory_header_title_color",
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 10,
                          // 가로/세로 크기
                          "size": [ "100%", "100%" ],
                          // 기준점에서 이동하는 거리
                          "offset": [ 0, 0 ],
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "center",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "center"
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "stonecutter_content_stack_panel": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "pattern_scroll_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image",
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "inventory_scroll_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image",
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "inventory_panel/inventory_title_label_centerer/inventory_title_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "right_tab_stonecutter": {
    // 오버라이드 가능한 변수
    "$checked_bar_anchor": "right",
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$tab_image_size": [ "100% - 4px", "100%" ],
    // 오버라이드 가능한 변수
    "$tab_image_anchor": "right_middle",
    // 오버라이드 가능한 변수
    "$tab_content_size": [ "100% - 4px", "100% - 8px" ],
    // 오버라이드 가능한 변수
    "$tab_content_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$tab_content_anchor": "right_middle",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": "$rainbowpie_ui_theme_inventory_header_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_alpha": 0.6
  },

  // ???/?? ??
  "right_panel/content/bg": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background"
  },

  // ???/?? ??
  "left_tab_stones": {
    // 오버라이드 가능한 변수
    "$checked_bar_anchor": "left",
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$tab_image_size": [ "100% - 4px", "100%" ],
    // 오버라이드 가능한 변수
    "$tab_image_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$tab_content_size": [ "100% - 4px", "100% - 8px" ],
    // 오버라이드 가능한 변수
    "$tab_content_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$tab_content_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": "$rainbowpie_ui_theme_inventory_header_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_alpha": 0.6
  },

  // ???/?? ??
  "left_tab_inventory": {
    // 오버라이드 가능한 변수
    "$checked_bar_anchor": "left",
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$tab_image_size": [ "100% - 4px", "100%" ],
    // 오버라이드 가능한 변수
    "$tab_image_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$tab_content_size": [ "100% - 4px", "100% - 8px" ],
    // 오버라이드 가능한 변수
    "$tab_content_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$tab_content_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": "$rainbowpie_ui_theme_inventory_header_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_alpha": 0.6
  },

  // ???/?? ??
  "left_panel/content/bg": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background"
  }
}

storage_management.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: storage_management.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "storage_management",

  // ???/?? ??
  "resource_controls": {
    // 오버라이드 가능한 변수
    "$item_template": "rainbowpieui_storage_management.pack_description_sub_item"
  },

  // ???/?? ??
  "behavior_controls": {
    // 오버라이드 가능한 변수
    "$item_template": "rainbowpieui_storage_management.pack_description_sub_item"
  },

  // ???/?? ??
  "cached_controls": {
    // 오버라이드 가능한 변수
    "$item_template": "rainbowpieui_storage_management.pack_description_sub_item"
  },

  // ???/?? ??
  "main_content_panel/panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "image_panel",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "padding_main_item_toggle": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ 4, 0 ],
              // 보이기/숨기기(공간 유지)
              "visible": "$image_visible"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "main_content_panel/panel/spacing": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "main_content_panel/panel/image_panel/image_border": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 사용할 이미지 경로
    "texture": ""
  },

  // ???/?? ??
  "main_content_panel/panel/image_panel/image_border/image": {
    // 기준점(어디에서 시작할지)
    "anchor_from": "left_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "left_middle",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // ?? ??
    "fill": true
  },

  // ???/?? ??
  "common_main_button/background": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // ???/?? ??
  "common_main_button/border": {
    // 보이기/숨기기(공간 유지)
    "visible": "($button_state = hover)",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 22
  },

  // ???/?? ??
  "sub_item_tray_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "storage_main_item_toggle": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "main_item_toggle",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "padding_main_item_toggle": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ 0, 2 ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "resource_sub_item/main_panel": {
    // 가로/세로 크기
    "size": [ "100%", "100%c + 1px" ],
    // 오버라이드 가능한 변수
    "$control_template|default": "rainbowpieui_storage_management.resource_toggle"
  },

  // ???/?? ??
  "common_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "generic_button/text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "storage_scroll_pane/category_stack_panel/stack_panel": {
    // 가로/세로 크기
    "size": [ "100%", "100%c" ]
  },

  // ???/?? ??
  "storage_scroll_pane/category_stack_panel/legacy_world_stack_panel": {
    // 가로/세로 크기
    "size": [ "100%", "100%c" ]
  },

  // ???/?? ??
  "storage_scroll_pane/category_stack_panel/retailtopreview_world_stack_panel": {
    // 가로/세로 크기
    "size": [ "100%", "100%c" ]
  },

  // ???/?? ??
  "storage_main_item_toggle/main_item_toggle": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_content": "storage_management.main_item_text",
    // 오버라이드 가능한 변수
    "$button_content_size": [ "100% - 6px", "100%" ]
  },

  // ???/?? ??
  "storage_footer_panel/visibleContent": {
    // 가로/세로 크기
    "size": [ "100% - 4px", 32 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#multiselectEnabled"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "storage_management_navigation_tab_toggle",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#storage_management_visible"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#multiselectEnabled and #storage_management_visible)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "storage_footer_panel/visibleContent/delete_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "storage_footer_panel/visibleContent/share_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "storage_header_panel/header_panel/clear_download_cache_button_panel/clear_download_button": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "storage_header_panel/header_panel/clear_download_cache_button_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 계산/조건 결과를 연결
            "binding_type": "view",
            // ?? ??
            "source_control_name": "storage_settings_navigation_tab_toggle",
            // 계산식/참조 값
            "source_property_name": "#toggle_state",
            // 결과가 들어갈 속성
            "target_property_name": "#visible"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "storage_header_panel/header_panel/panel/multiselect_button": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpie_ui_toggle.toggle_content_button_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_unchecked_locked_hover",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpie_ui_toggle.toggle_content_button_checked_locked_hover",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ]
  },

  // ???/?? ??
  "storage_header_panel/header_panel/clear_cache_button_panel/clear_cache_button": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "storage_header_panel/header_panel/clear_screenshots_cache_button_panel/clear_screenshots_cache_button": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#screenshots_showcase_enabled",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#enabled"
      }
    ]
  },

  // ???/?? ??
  "storage_header_panel/header_panel/delete_local_screenshots_button_panel/delete_local_screenshots_button": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#screenshots_gallery_enabled",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#enabled"
      }
    ]
  },

  // ???/?? ??
  "storage_main_panel/scroll_content": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 계산/조건 결과를 연결
            "binding_type": "view",
            // ?? ??
            "source_control_name": "storage_management_navigation_tab_toggle",
            // 계산식/참조 값
            "source_property_name": "#toggle_state",
            // 결과가 들어갈 속성
            "target_property_name": "#visible"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "storage_header_panel/header_panel/panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 계산/조건 결과를 연결
            "binding_type": "view",
            // ?? ??
            "source_control_name": "storage_management_navigation_tab_toggle",
            // 계산식/참조 값
            "source_property_name": "#toggle_state",
            // 결과가 들어갈 속성
            "target_property_name": "#visible"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "storage_header_panel/header_panel/file_storage_dropdown": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#storage_location_radio_external",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.filelocation.external"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#storage_location_radio_package",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.filelocation.appdata"
        }
      }
    ],
    // 완전히 제거(공간도 없음)
    "ignored": "(($is_holographic and $is_reality_mode) or (not ($storage_location_switch_enabled and not $gear_vr)))",
    // 보이기/숨기기(공간 유지)
    "visible": true,
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 계산/조건 결과를 연결
            "binding_type": "view",
            // ?? ??
            "source_control_name": "storage_settings_navigation_tab_toggle",
            // 계산식/참조 값
            "source_property_name": "#toggle_state",
            // 결과가 들어갈 속성
            "target_property_name": "#visible"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "storage_header_panel/header_panel/clear_cache_button_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 계산/조건 결과를 연결
            "binding_type": "view",
            // ?? ??
            "source_control_name": "storage_settings_navigation_tab_toggle",
            // 계산식/참조 값
            "source_property_name": "#toggle_state",
            // 결과가 들어갈 속성
            "target_property_name": "#visible"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "storage_header_panel/header_panel/clear_screenshots_cache_button_panel": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "storage_settings_navigation_tab_toggle",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "storage_header_panel/header_panel/delete_local_screenshots_button_panel": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "storage_settings_navigation_tab_toggle",
        // 계산식/참조 값
        "source_property_name": "#toggle_state",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "storage_header_panel/header_panel": {
    // 가로/세로 크기
    "size": [ "100%", "100%c + 4px" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 2 ],
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "navigation_tab_panel@rainbowpieui_storage_management.navigation_tab_panel": {}
          },
          {
            // ???/?? ??
            "padding_navigation_tab": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ 0, 1 ]
            }
          }
        ]
      }
    ]
  }
}

store_common.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: store_common.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "common_store",

  // ???/?? ??
  "purchase_coins_panel/plus_button": {
  },

  // ???/?? ??
  "inventory_panel/inventory_button": {
  },

  // ???/?? ??
  "status_with_coins/inventory_panel/inventory_button": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ]
  },

  // ???/?? ??
  "status_with_coins/coin_balance_panel/coin_balance_panel": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ]
  },

  // ???/?? ??
  "store_header_with_coins": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$screen_header_title|default": "#screen_header_title",
    // 오버라이드 가능한 변수
    "$screen_header_title_binding_type|default": "global",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "header@rainbowpie_ui_common.screen_header": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_title": "$screen_header_title",
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_title_bindings": [
            {
              // 바인딩 종류(변수로 관리되는 경우도 있음)
              "binding_type": "$screen_header_title_binding_type",
              // 가져올 값 이름
              "binding_name": "$screen_header_title",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "$screen_header_title"
            }
          ],
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_screenheader_content_panel": "rainbowpie_ui_store_common.header_content_panel"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "child_control@$child_control": {
          // 가로/세로 크기
          "size": [ "100%", "100% - 20px" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      }
    ]
  },

  // ???/?? ??
  "store_base_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "store",
    // 오버라이드 가능한 변수
    "$use_animation": true
  }
}

store_data_driven_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: store_data_driven_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "store_layout",

  // ???/?? ??
  "store_data_driven_screen_base": {
    // 조건에 따라 변수 값을 바꾸기
    "variables": []
  }
}

structure_editor_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: structure_editor_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "structure_editor",

  // ???/?? ??
  "image_panel_wrapper": {
    // 사용할 이미지 경로
    "texture": ""
  },

  // ???/?? ??
  "button_panel_wrapper": {
    // 사용할 이미지 경로
    "texture": ""
  },

  // ???/?? ??
  "export_disabled_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "import_failed_message_text/save_message_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "import_message_text/save_message_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "save_message_text/save_message_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "load_mode_panel/animation_time_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "load_mode_panel/mirror_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "mirror_checkbox/label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "common_text_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "3d_export_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "save_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "export_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "load_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "detect_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "import_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "reset_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "help_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "redstone_save_mode_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "structure_redstone_memory@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#structure_redstone_memory",
          // 오버라이드 가능한 변수
          "$radio_label_text": "structure_block.save_to_memory"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "structure_redstone_disk@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#structure_redstone_disk",
          // 오버라이드 가능한 변수
          "$radio_label_text": "structure_block.save_to_disk"
        }
      }
    ]
  },

  // ???/?? ??
  "animation_mode_dropdown": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "structure_animation_none@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#structure_animation_none",
          // 오버라이드 가능한 변수
          "$radio_label_text": "structure_block.place_by_none"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "structure_animation_layers@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#structure_animation_layers",
          // 오버라이드 가능한 변수
          "$radio_label_text": "structure_block.place_by_layer"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "structure_animation_blocks@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#structure_animation_blocks",
          // 오버라이드 가능한 변수
          "$radio_label_text": "structure_block.place_by_block"
        }
      }
    ]
  },

  // ???/?? ??
  "mode_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "structure_save_mode@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#structure_save_mode",
          // 오버라이드 가능한 변수
          "$radio_label_text|default": "structure_block.mode.save"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "structure_load_mode@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#structure_load_mode",
          // 오버라이드 가능한 변수
          "$radio_label_text|default": "structure_block.mode.load"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "structure_data_mode@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $data_support)",
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#structure_data_mode",
          // 오버라이드 가능한 변수
          "$radio_label_text": "structure_block.mode.data"
        }
      },
      {

        // 다른 템플릿을 가져와서 확장(상속)
        "structure_corner_mode@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#structure_corner_mode",
          // 오버라이드 가능한 변수
          "$radio_label_text": "structure_block.mode.corner"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "structure_3d_export_mode@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $3DExport_support)",
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#structure_3d_export_mode",
          // 오버라이드 가능한 변수
          "$radio_label_text": "structure_block.mode.export"
        }
      }
    ]
  },

  // ???/?? ??
  "structure_editor_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "structure_editor",
    // ?? ??
    "force_render_below": true,
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_structure_editor.structure_editor_content"
  }
}

toast_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: toast_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "toast_screen",

  // ???/?? ??
  "popup_anim": {
    // 움직임 곡선
    "easing": "out_cubic"
  },

  // ???/?? ??
  "toast_screen_content": {
    // 목록 아이템을 자동으로 생성
    "factory": {
      // ?? ??
      "name": "toast_factory",
      // 팩토리 템플릿 매핑
      "control_ids": {
        // ?? ??
        "popup": "popup@toast_screen.popup",
        // ?? ??
        "chat_popup": "chat_popup@toast_screen.chat_popup",
        // ?? ??
        "recipe_unlocked": "recipe_unlocked@toast_screen.recipe_unlocked_popup",
        // ?? ??
        "recipe_unlocked_pocket": "recipe_unlocked_pocket@toast_screen.recipe_unlocked_pocket_popup",
        // ?? ??
        "splitscreen_join_popup": "splitscreen_join_popup@toast_screen.splitscreen_join_popup",
        // ??? ?? ?
        "formfitting_alpha_toast": "toast_screen.formfitting_alpha_toast",
        // ?? ??
        "snackbar": "snackbar@toast_screen.snackbar"
      },
      // ???/?? ??
      "factory_variables": [
        "$rainbowpie_ui_theme_global_font_name",
        "$rainbowpie_ui_theme_global_font_backup_name",
        "$is_pregame"
      ]
    }
  },

  // ???/?? ??
  "text_stack_panel": {
    // 기준점에서 이동하는 거리
    "offset": [ -3, 3 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "title_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "title@toast_screen.toast_label": {
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 보여줄 글자
                "text": "#toast_title",
                // ?? ??
                "text_alignment": "center",
                // ??
                "font_type": "$rainbowpie_ui_theme_global_font_name",
                // ?? ?? ?
                "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
                // ?? (R,G,B,A)
                "color": "$rainbowpie_ui_theme_title_text_color",
                // 가로/세로 크기
                "size": [ "100%", 10 ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#toast_title"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "(not #toast_subtitle_visible)",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "title_and_subtitle": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 2 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "title@toast_screen.toast_label": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 보여줄 글자
                      "text": "#toast_title",
                      // ?? ??
                      "text_alignment": "center",
                      // ??
                      "font_type": "$rainbowpie_ui_theme_global_font_name",
                      // ?? ?? ?
                      "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_title_text_color",
                      // 가로/세로 크기
                      "size": [ "100%", 10 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#toast_title"
                        }
                      ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "subtext@toast_screen.toast_label": {
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // 가로/세로 크기
                      "size": [ "100%", 10 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 보여줄 글자
                      "text": "#toast_subtitle",
                      // ?? ??
                      "text_alignment": "center",
                      // ??
                      "font_type": "$rainbowpie_ui_theme_global_font_name",
                      // ?? ?? ?
                      "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
                      // ?? (R,G,B,A)
                      "color": "$rainbowpie_ui_theme_title_text_color",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#toast_subtitle"
                        }
                      ]
                    }
                  }
                ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#toast_subtitle_visible",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#visible"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "toast_image": {
    // 가로/세로 크기
    "size": [ 20, 20 ]
  },

  // ???/?? ??
  "resource_pack_icon/resource_pack_image": {
    // 가로/세로 크기
    "size": [ 20, 20 ]
  },

  // ???/?? ??
  "popup": {
    // 오버라이드 가능한 변수
    "$popup_size": [ "60%", 26 ],
    // 오버라이드 가능한 변수
    "$offset_anims": [
      "@rainbowpieui_toast_screen.popup_anim"
    ],
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "background_toast_subtitle_visible": {
              // 이미지 표시
              "type": "image",
              // 기준점(어디에서 시작할지)
              "anchor_from": "center",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "center",
              // 가로/세로 크기
              "size": [ "100% - 6px", "100% - 2px" ],
              // 기준점에서 이동하는 거리
              "offset": [ 0, 2 ],
              // 사용할 이미지 경로
              "texture": "textures/ui/White",
              // ?? (R,G,B,A)
              "color": "$rainbowpie_ui_theme_toast_background_color",
              // ???
              "alpha": "$rainbowpie_ui_theme_toast_background_alpha",
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 가져올 값 이름
                  "binding_name": "#toast_subtitle_visible",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#visible"
                }
              ]
            }
          },
          {
            // ???/?? ??
            "icon": {
              // 겹치는 순서(숫자 클수록 위)
              "layer": 3,
              // 줄맞춤 컨테이너: 가로/세로로 자동 배치
              "type": "stack_panel",
              // 기준점(어디에서 시작할지)
              "anchor_from": "left_middle",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "left_middle",
              // 가로/세로 크기
              "size": [ "100%c", "100%" ],
              // 기준점에서 이동하는 거리
              "offset": [ 3, 0 ],
              // 목록 아이템을 자동으로 생성
              "factory": {
                // ?? ??
                "name": "toast_image_factory",
                // 팩토리 템플릿 매핑
                "control_ids": {
                  // ??? ?? ?
                  "xbox_icon": "@toast_screen.xbox_icon",
                  // ??? ?? ?
                  "third_party_achievement_icon": "@toast_screen.third_party_achievement_icon",
                  // ??? ?? ?
                  "third_party_invite_icon": "@toast_screen.third_party_invite_icon",
                  // ??? ?? ?
                  "icon_resource_pack": "@toast_screen.resource_pack_icon",
                  // ?? ??
                  "key_art_image": "@toast_screen.key_art_image",
                  // ??? ?? ?
                  "persona_icon": "@toast_screen.persona_icon"
                },
                // ???/?? ??
                "factory_variables": [
                  "$hide_xbox_live_icon"
                ]
              },
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 게임이 주는 전역 값 연결
                  "binding_type": "global",
                  // 가져올 값 이름
                  "binding_name": "#toast_icon_section_content",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#collection_length"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "popup/popup_content/icon_padding": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "popup/popup_content/text_padding": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "popup/popup_content": {
    // 가로/세로 크기
    "size": [ "100% - 6px", "100% - 6px" ]
  },

  // ???/?? ??
  "popup/background": {
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 가로/세로 크기
    "size": [ "100% - 6px", "100% - 6px" ],
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_home + '/r_white')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_toast_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_toast_background_alpha",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "(not #toast_subtitle_visible)",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
    ]
  },

  // ???/?? ??
  "formfitting_alpha_toast/bg/label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_title_text_color"
  },

  // ???/?? ??
  "formfitting_alpha_toast/bg": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_toast_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_toast_background_alpha"
  },

  // ???/?? ??
  "toast_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_ignored": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "toast_screen"
  }
}

trade_2_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: trade_2_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "trade2",

  // ???/?? ??
  "top_half_stack_panel/trade_button_holder/trade_button": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, "-50%y" ]
  },

  // ???/?? ??
  "top_half_stack_panel/trade_button_holder": {
    // 가로/세로 크기
    "size": [ "100%cm", 0 ],
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "trade_all_button@trade2.trade_button": {
              // 오버라이드 가능한 변수
              "$button_text": "rainbowpie.ui.trade2.tradeAll",
              // 오버라이드 가능한 변수
              "$pressed_button_name": "button.container_auto_place",
              // 이 컨트롤 안에서 쓰는 임시 저장소
              "property_bag": {
                // ???/??? ?
                "#collection_name": "trade2_result_item",
                // ???/??? ?
                "#collection_index": 0
              },
              // 기준점에서 이동하는 거리
              "offset": [ 0, "50%y" ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "screen_stack_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "result_item_name_panel": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_ca81cc28)",
              // 가로/세로 크기
              "size": [ 0, 166 ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "text_background@rainbowpie_ui_common.text_background": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "top_left",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "top_left",
                    // 기준점에서 이동하는 거리
                    "offset": [ 0, 26 ],
                    // 가로/세로 크기
                    "size": [ "100%c + 2px", "100%c + 2px" ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "result_item_info_label@rainbowpie_ui_common.text_label": {
                          // 보여줄 글자
                          "text": "#hover_text",
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 1,
                          // 게임 값과 연결하는 규칙 목록
                          "bindings": [
                            {
                              // 가져올 값 이름
                              "binding_name": "#hover_text",
                              // 목록 데이터를 반복 연결
                              "binding_type": "collection",
                              // 목록 이름
                              "binding_collection_name": "trade2_result_item"
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ],
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 가져올 값 이름
                  "binding_name": "#hover_text",
                  // 목록 데이터를 반복 연결
                  "binding_type": "collection",
                  // 목록 이름
                  "binding_collection_name": "trade2_result_item"
                },
                {
                  // 계산/조건 결과를 연결
                  "binding_type": "view",
                  // 계산식/참조 값
                  "source_property_name": "(not (#hover_text = ''))",
                  // 결과가 들어갈 속성
                  "target_property_name": "#visible"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "hover_button": {
  },

  // ???/?? ??
  "scroll_inner_input_panel/trade_selector_stack_panel": {
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle"
  },

  // ???/?? ??
  "scroll_inner_input_panel": {
    // 가로/세로 크기
    "size": [ "100%", "100%c - 1px" ]
  },

  // ???/?? ??
  "tier_stack_panel/tier_label_holder": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "tier_stack_panel/padding": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "tier_stack_panel": {
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [],
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "tier_label_holder",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "tier_title@rainbowpieui_trade2.tier_title": {}
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "trade_toggle_holder": {
    // 가로/세로 크기
    "size": [ "100%", "100%c" ]
  },

  // ???/?? ??
  "trade_toggle": {
    // 오버라이드 가능한 변수
    "$toggle_enabled_binding_type": "none",
    // 오버라이드 가능한 변수
    "$toggle_enabled_binding_name": "none",
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpieui_trade2.trade_toggle_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpieui_trade2.trade_toggle_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked"
  },

  // ???/?? ??
  "left_panel/bg": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "trade_scroll_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "common.empty_panel",
    // 오버라이드 가능한 변수
    "$scroll_view_port_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$scroll_view_port_offset": [ 0, 0 ],
    // 가로/세로 크기
    "size": [ "100% - 12px", "100% - 5px" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0.5 ]
  },

  // ???/?? ??
  "exp_progress_bar/empty_progress_bar/progress_bar_nub": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "blue_progress_bar": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": [ 0.2392156862745098, 0.5686274509803922, 0.6 ],
    // ???
    "alpha": "$rainbowpie_ui_theme_experience_full_alpha"
  },

  // ???/?? ??
  "white_progress_bar": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": [ 1.0, 1.0, 1.0 ],
    // ???
    "alpha": "$rainbowpie_ui_theme_experience_empty_alpha"
  },

  // ???/?? ??
  "empty_progress_bar": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": [ 0.1254901960784314, 0.2509803921568627, 0.2823529411764706 ],
    // ???
    "alpha": "$rainbowpie_ui_theme_experience_empty_alpha"
  },

  // ???/?? ??
  "trade_button": {
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "how_to_play_button": {
    // 완전히 제거(공간도 없음)
    "ignored": true,
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // 오버라이드 가능한 변수
    "$button_text": "?"
  },

  // ???/?? ??
  "arrow_left_image": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_dark_left_stretch')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "arrow_right_image": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_theme + '/icon/inventory/arrow_dark_right_stretch')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_default_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_default_alpha"
  },

  // ???/?? ??
  "item_slot": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "screen_stack_panel/toolbar_anchor": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "center_fold": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "villager_name_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color"
  },

  // ???/?? ??
  "exp_progress_bar": {
    // 가로/세로 크기
    "size": [ "100% - 14px", 3 ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 31 ]
  },

  // ???/?? ??
  "top_half_panel": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 25 ]
  },

  // ???/?? ??
  "right_panel/trade_screen_inventory": {
    // 보이기/숨기기(공간 유지)
    "visible": true,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "more_navigation_tab_toggle",
        // 계산식/참조 값
        "source_property_name": "(not #toggle_state)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "right_panel/trade_screen_inventory/villager_name_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "right_panel/common_panel": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -2 ],
    // 가로/세로 크기
    "size": [ "100% - 8px", "100% - 28px" ]
  },

  // ???/?? ??
  "right_panel": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_flag_84df7492",
            // 오버라이드 가능한 변수
            "$background_images": "rainbowpie_ui_inventory_and_container.cell_panel"
          }
        ]
      },
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "inventory_header@rainbowpie_ui_inventory.header": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title": "#name_label",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_title_bindings": [
                {
                  // 가져올 값 이름
                  "binding_name": "#name_label",
                  // ?? ???
                  "binding_condition": "always_when_visible"
                }
              ],
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_inventoryheader_extra_controls": "rainbowpieui_trade2.header_controls"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "trade_screen_more_info@rainbowpieui_trade2.trade_screen_more_info": {}
          }
        ]
      }
    ]
  }
}

trade_2_screen_pocket.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: trade_2_screen_pocket.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "trade2_pocket",

  // ???/?? ??
  "right_navigation_tabs/pocket_tab_close_button": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "right_navigation_tabs": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "close_panel": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ "100%", 33 ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "close_background@rainbowpie_ui_inventory.header_background": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "right_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "right_middle",
                    // 가로/세로 크기
                    "size": [ "100% - 4px", 33 ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "close_button@rainbowpie_ui_common.close_button": {
                          // 오버라이드 가능한 변수
                          "$rainbowpie_ui_theme_closebutton_default_color": "$rainbowpie_ui_theme_inventory_header_title_color",
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 10,
                          // 가로/세로 크기
                          "size": [ "100%", "100%" ],
                          // 기준점에서 이동하는 거리
                          "offset": [ 0, 0 ],
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "center",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "center"
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "trade_slots_panel": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_content_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_content_background_alpha"
  },

  // ???/?? ??
  "name_and_trade_slots_stack_panel/exp_progress_bar_holder/exp_progress_bar": {
    // 가로/세로 크기
    "size": [ "100%", 3 ]
  },

  // ???/?? ??
  "inventory_scroll_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled": true,
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "rainbowpie_ui_common.container_scroll_background_image",
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "right_panel/content/bg": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background"
  },

  // ???/?? ??
  "left_tab_trade": {
    // 오버라이드 가능한 변수
    "$checked_bar_anchor": "left",
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$tab_image_size": [ "100% - 4px", "100%" ],
    // 오버라이드 가능한 변수
    "$tab_image_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$tab_content_size": [ "100% - 4px", "100% - 8px" ],
    // 오버라이드 가능한 변수
    "$tab_content_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$tab_content_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": "$rainbowpie_ui_theme_inventory_header_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_alpha": 0.6
  },

  // ???/?? ??
  "left_tab_inventory": {
    // 오버라이드 가능한 변수
    "$checked_bar_anchor": "left",
    // 오버라이드 가능한 변수
    "$tab_panel": "rainbowpie_ui_tab.tab_panel",
    // 오버라이드 가능한 변수
    "$tab_image_size": [ "100% - 4px", "100%" ],
    // 오버라이드 가능한 변수
    "$tab_image_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$tab_content_size": [ "100% - 4px", "100% - 8px" ],
    // 오버라이드 가능한 변수
    "$tab_content_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$tab_content_anchor": "left_middle",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha": "$rainbowpie_ui_theme_inventory_header_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_color": "$rainbowpie_ui_theme_inventory_header_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_color": "$rainbowpie_ui_theme_inventory_background_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_alpha": 0.6
  },

  // ???/?? ??
  "left_panel/content/bg": {
    // 오버라이드 가능한 변수
    "$dialog_background": "rainbowpie_ui_common.inventory_background"
  }
}

ui_common.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: ui_common.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "common",

  // ???/?? ??
  "loading_bar_wait_animation": {
    // 걸리는 시간(초)
    "duration": 1.0
  },

  // ???/?? ??
  "loading_bar_fade_animation": {
    // 걸리는 시간(초)
    "duration": "$rainbowpie_ui_animation_transition_time"
  },

  // ???/?? ??
  "static_tooltip_popup_with_image_and_text/image_and_text_stack_panel/tooltip_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_hovertext_text_color"
  },

  // ???/?? ??
  "static_tooltip_popup_with_image_and_text/tooltip_chevron": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "tooltip_background": {
    // 사용할 이미지 경로
    "texture": "($rainbowpie_ui_path_home + '/r_white')",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_hovertext_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_hovertext_background_alpha"
  },

  // ???/?? ??
  "selected_item_details_factory": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "slot_selected": {
    // 사용할 이미지 경로
    "texture": "textures/ui/focus_border_white",
    // 가로/세로 크기
    "size": [ "100%", "100%" ]
  },

  // ???/?? ??
  "durability_bar": {
    // 오버라이드 가능한 변수
    "$durability_bar_size|default": [ 14, 1.5 ],
    // 오버라이드 가능한 변수
    "$durability_bar_offset|default": [ 0, 6 ],
    // 이 컨트롤 안에서 쓰는 임시 저장소
    "property_bag": {
      // ?? ??
      "drop_shadow": false,
      // ?? ??
      "is_durability": true,
      // ?? ??
      "round_value": true
    }
  },

  // ???/?? ??
  "empty_progress_bar": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ???
    "alpha": 0.5
  },

  // ???/?? ??
  "filled_progress_bar": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ???
    "alpha": 0.6
  },

  // ???/?? ??
  "progress_bar": {
    // 가로/세로 크기
    "size": [ 182, 4 ]
  },

  // ???/?? ??
  "progress_bar_for_collections/empty_progress_bar": {
    // ?? (R,G,B,A)
    "color": [ 0.2, 0.2, 0.2 ],
    // ???
    "alpha": 0.75,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "empty_progress_bar@common.empty_progress_bar": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": -2,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#bar_color",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#color",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "$progress_bar_collection"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "highlight_slot_panel/highlight/hover_text": {
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_flag_86c54726)",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // 가져올 값 이름
            "binding_name": "#item_durability_total_amount",
            // 목록 데이터를 반복 연결
            "binding_type": "collection",
            // 목록 이름
            "binding_collection_name": "$item_collection_name",
            // 완전히 제거(공간도 없음)
            "ignored": "((not $rainbowpie_ui_feature_inventory_durability) or (not $durability_bar_required))"
          },
          {
            // 가져올 값 이름
            "binding_name": "#item_durability_current_amount",
            // 목록 데이터를 반복 연결
            "binding_type": "collection",
            // 목록 이름
            "binding_collection_name": "$item_collection_name",
            // 완전히 제거(공간도 없음)
            "ignored": "((not $rainbowpie_ui_feature_inventory_durability) or (not $durability_bar_required))"
          },
          {
            // 계산/조건 결과를 연결
            "binding_type": "view",
            // 계산식/참조 값
            "source_property_name": "((#item_durability_current_amount = 0) and (#item_durability_total_amount = 0))",
            // 결과가 들어갈 속성
            "target_property_name": "#visible",
            // 완전히 제거(공간도 없음)
            "ignored": "((not $rainbowpie_ui_feature_inventory_durability) or (not $durability_bar_required))"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "pocket_hotbar_panel/bg": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "pocket_hotbar_panel/hotbar_grid": {
    // 오버라이드 가능한 변수
    "$background_images": "rainbowpie_ui_common.cell_image"
  },

  // ???/?? ??
  "pocket_content_panels/offset_panel/center_bg": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "inventory_panel_bottom_half_with_label/inventory_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_title_color",
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "inventory_selected_stack_size_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "stack_count_label": {
    // ??
    "font_type": "$rainbowpie_ui_flag_inventory_stack_count_font",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "safezone_inner_matrix/outer_top": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "safezone_background@rainbowpie_ui_common.global_background": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_localui_screenbackground_ingameSafezoneOnly or $rainbowpie_localui_screenbackground_ingamebg_ignored or $rainbowpie_localui_inventory_screen or not (($rainbowpie_ui_flag_overlay_screen_alias - $rainbowpie_localui_screen_alias_formatted) = $rainbowpie_ui_flag_overlay_screen_alias))",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // ???/?? ??
  "safezone_inner_matrix/outer_bottom": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "safezone_background@rainbowpie_ui_common.global_background": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_localui_screenbackground_ingameSafezoneOnly or $rainbowpie_localui_screenbackground_ingamebg_ignored or $rainbowpie_localui_inventory_screen or not (($rainbowpie_ui_flag_overlay_screen_alias - $rainbowpie_localui_screen_alias_formatted) = $rainbowpie_ui_flag_overlay_screen_alias))",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // ???/?? ??
  "safezone_outer_matrix/outer_left": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "safezone_background@rainbowpie_ui_common.global_background": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_localui_screenbackground_ingameSafezoneOnly or $rainbowpie_localui_screenbackground_ingamebg_ignored or $rainbowpie_localui_inventory_screen or not (($rainbowpie_ui_flag_overlay_screen_alias - $rainbowpie_localui_screen_alias_formatted) = $rainbowpie_ui_flag_overlay_screen_alias))",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // ???/?? ??
  "safezone_outer_matrix/outer_right": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "safezone_background@rainbowpie_ui_common.global_background": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_localui_screenbackground_ingameSafezoneOnly or $rainbowpie_localui_screenbackground_ingamebg_ignored or $rainbowpie_localui_inventory_screen or not (($rainbowpie_ui_flag_overlay_screen_alias - $rainbowpie_localui_screen_alias_formatted) = $rainbowpie_ui_flag_overlay_screen_alias))",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      }
    ]
  },

  // ???/?? ??
  "container_slot_button_prototype": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "custom_hover_text_control": {
              // 클릭 가능한 버튼
              "type": "button",
              // ?? ??
              "consume_hover_events": false,
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_flag_86c54726)",
              // ?? ??
              "hover_control": "hover_text",
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // ???/?? ??
                  "custom_hover_text": {
                    // 마우스/커서 따라다니는 패널
                    "type": "input_panel",
                    // 보이기/숨기기(공간 유지)
                    "visible": false,
                    // 가로/세로 크기
                    "size": [ "100%", "100%" ],
                    // ??? ?? ?
                    "allow_clipping": false,
                    // ?? ??
                    "follows_cursor": true,
                    // ?? ??
                    "consume_hover_events": false,
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // ???/?? ??
                        "hover_text": {
                          // 이미지 표시
                          "type": "image",
                          // 사용할 이미지 경로
                          "texture": "($rainbowpie_ui_path_home + '/r_white')",
                          // 가로/세로 크기
                          "size": [ "100%c + 8px", "100%c + 5px" ],
                          // 기준점에서 이동하는 거리
                          "offset": "$offset",
                          // 오버라이드 가능한 변수
                          "$offset": [ 20, 0 ],
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "top_left",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "top_left",
                          // ?? ????
                          "clips_children": true,
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 200,
                          // ?? (R,G,B,A)
                          "color": "$rainbowpie_ui_theme_hovertext_background_color",
                          // ???
                          "alpha": "$rainbowpie_ui_theme_hovertext_background_alpha",
                          // 이 안에 들어가는 부품 목록
                          "controls": [
                            { "inventory_actions_hover_text@rainbowpie_module_inventory_actions.inventory_actions_hover_text": {} },
                            {
                              // ???/?? ??
                              "background_icon": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 붙일 위치(어디에 놓을지)
                                "anchor_to": "$rainbowpie_ui_theme_hovertext_bgicon_anchor",
                                // 기준점(어디에서 시작할지)
                                "anchor_from": "$rainbowpie_ui_theme_hovertext_bgicon_anchor",
                                // 완전히 제거(공간도 없음)
                                "ignored": "(not $rainbowpie_ui_theme_hovertext_bgicon_enabled)",
                                // ??? ?? ?
                                "allow_clipping": true,
                                // 이 안에 들어가는 부품 목록
                                "controls": [
                                  {
                                    // ???/?? ??
                                    "icon_image": {
                                      // 이미지 표시
                                      "type": "image",
                                      // 가로/세로 크기
                                      "size": "$rainbowpie_ui_theme_hovertext_bgicon_size",
                                      // 붙일 위치(어디에 놓을지)
                                      "anchor_to": "$rainbowpie_ui_theme_hovertext_bgicon_anchor",
                                      // 기준점(어디에서 시작할지)
                                      "anchor_from": "$rainbowpie_ui_theme_hovertext_bgicon_anchor",
                                      // 기준점에서 이동하는 거리
                                      "offset": "$rainbowpie_ui_theme_hovertext_bgicon_offset",
                                      // 사용할 이미지 경로
                                      "texture": "$rainbowpie_ui_theme_hovertext_bgicon_texture",
                                      // ???
                                      "alpha": "$rainbowpie_ui_theme_hovertext_bgicon_alpha",
                                      // ?? ??
                                      "fill": "$rainbowpie_ui_theme_hovertext_bgicon_fill",
                                      // 겹치는 순서(숫자 클수록 위)
                                      "layer": 3
                                    }
                                  }
                                ]
                              }
                            },
                            {
                              // ???/?? ??
                              "hover_text_controls": {
                                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                "type": "stack_panel",
                                // 쌓는 방향(가로/세로)
                                "orientation": "vertical",
                                // 가로/세로 크기
                                "size": [ "100%cm", "100%c" ],
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": 8,
                                // 이 안에 들어가는 부품 목록
                                "controls": [
                                  {
                                    // 다른 템플릿을 가져와서 확장(상속)
                                    "hover_text_label@rainbowpie_ui_common.text_label_notheme": {
                                      // 가로/세로 크기
                                      "size": [ "default", "default" ],
                                      // ?? (R,G,B,A)
                                      "color": "$rainbowpie_ui_theme_hovertext_text_color",
                                      // 보여줄 글자
                                      "text": "#text",
                                      // 게임 값과 연결하는 규칙 목록
                                      "bindings": [
                                        {
                                          // 가져올 값 이름
                                          "binding_name": "#hover_text",
                                          // 가져온 값을 다른 속성으로 연결
                                          "binding_name_override": "#text",
                                          // 목록 데이터를 반복 연결
                                          "binding_type": "collection",
                                          // 목록 이름
                                          "binding_collection_name": "$item_collection_name"
                                        }
                                      ]
                                    }
                                  },
                                  {
                                    // ???/?? ??
                                    "durability_panel": {
                                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                      "type": "stack_panel",
                                      // 쌓는 방향(가로/세로)
                                      "orientation": "horizontal",
                                      // 가로/세로 크기
                                      "size": [ "100%c", "100%cm" ],
                                      // 완전히 제거(공간도 없음)
                                      "ignored": "((not $rainbowpie_ui_feature_inventory_durability) or (not $durability_bar_required))",
                                      // 보이기/숨기기(공간 유지)
                                      "visible": false,
                                      // 이 안에 들어가는 부품 목록
                                      "controls": [
                                        {
                                          // 다른 템플릿을 가져와서 확장(상속)
                                          "hover_text_durability_title@rainbowpie_ui_common.text_label_notheme": {
                                            // 가로/세로 크기
                                            "size": [ "default", "default" ],
                                            // ?? (R,G,B,A)
                                            "color": [ 0.0, 0.667, 0 ],
                                            // 보여줄 글자
                                            "text": "rainbowpie.ui.inventory.durability"
                                          }
                                        },
                                        {
                                          // ???/?? ??
                                          "padding": {
                                            // 패널: 다른 부품을 담는 바닥판
                                            "type": "panel",
                                            // 가로/세로 크기
                                            "size": [ 1, 0 ]
                                          }
                                        },
                                        {
                                          // 다른 템플릿을 가져와서 확장(상속)
                                          "hover_text_durability_value@rainbowpie_ui_common.text_label_notheme": {
                                            // 가로/세로 크기
                                            "size": [ "default", "default" ],
                                            // ?? (R,G,B,A)
                                            "color": [ 0.0, 0.667, 0 ],
                                            // 보여줄 글자
                                            "text": "#text",
                                            // 이 컨트롤 안에서 쓰는 임시 저장소
                                            "property_bag": {
                                              // ???/??? ?
                                              "#amount_current": 0,
                                              // ???/??? ?
                                              "#amount_total": 0
                                            },
                                            // 게임 값과 연결하는 규칙 목록
                                            "bindings": [
                                              {
                                                // 가져올 값 이름
                                                "binding_name": "#item_durability_total_amount",
                                                // 목록 데이터를 반복 연결
                                                "binding_type": "collection",
                                                // 목록 이름
                                                "binding_collection_name": "$item_collection_name"
                                              },
                                              {
                                                // 가져올 값 이름
                                                "binding_name": "#item_durability_current_amount",
                                                // 목록 데이터를 반복 연결
                                                "binding_type": "collection",
                                                // 목록 이름
                                                "binding_collection_name": "$item_collection_name"
                                              },
                                              {
                                                // 계산/조건 결과를 연결
                                                "binding_type": "view",
                                                // 계산식/참조 값
                                                "source_property_name": "(((#amount_current > #item_durability_current_amount) * - 1 + 1) * ((#amount_current < #item_durability_current_amount) * 1 + #amount_current))",
                                                // 결과가 들어갈 속성
                                                "target_property_name": "#amount_current",
                                                // ?? ???
                                                "binding_condition": "always_when_visible"
                                              },
                                              {
                                                // 계산/조건 결과를 연결
                                                "binding_type": "view",
                                                // 계산식/참조 값
                                                "source_property_name": "(((#amount_total > #item_durability_total_amount) * - 1 + 1) * ((#amount_total < #item_durability_total_amount) * 1 + #amount_total))",
                                                // 결과가 들어갈 속성
                                                "target_property_name": "#amount_total",
                                                // ?? ???
                                                "binding_condition": "always_when_visible"
                                              },
                                              {
                                                // 계산/조건 결과를 연결
                                                "binding_type": "view",
                                                // 계산식/참조 값
                                                "source_property_name": "('\"' + #amount_current + '/' + #amount_total + '\"')",
                                                // 결과가 들어갈 속성
                                                "target_property_name": "#text"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      // 게임 값과 연결하는 규칙 목록
                                      "bindings": [
                                        {
                                          // 가져올 값 이름
                                          "binding_name": "#item_durability_total_amount",
                                          // 목록 데이터를 반복 연결
                                          "binding_type": "collection",
                                          // 목록 이름
                                          "binding_collection_name": "$item_collection_name"
                                        },
                                        {
                                          // 가져올 값 이름
                                          "binding_name": "#item_durability_current_amount",
                                          // 목록 데이터를 반복 연결
                                          "binding_type": "collection",
                                          // 목록 이름
                                          "binding_collection_name": "$item_collection_name"
                                        },
                                        {
                                          // 계산/조건 결과를 연결
                                          "binding_type": "view",
                                          // 계산식/참조 값
                                          "source_property_name": "(not ((#item_durability_current_amount = 0) and (#item_durability_total_amount = 0)))",
                                          // 결과가 들어갈 속성
                                          "target_property_name": "#visible"
                                        }
                                      ]
                                    }
                                  },
                                  {
                                    // 다른 템플릿을 가져와서 확장(상속)
                                    "hover_text_debug@rainbowpie_ui_common.text_label_notheme": {
                                      // 완전히 제거(공간도 없음)
                                      "ignored": "(not $rainbowpie_ui_flag_inventory_debug)",
                                      // 가로/세로 크기
                                      "size": [ "default", "default" ],
                                      // ?? (R,G,B,A)
                                      "color": [ 0.0, 0.667, 0.667 ],
                                      // 보여줄 글자
                                      "text": "#text",
                                      // 게임 값과 연결하는 규칙 목록
                                      "bindings": [
                                        {
                                          // 가져올 값 이름
                                          "binding_name": "#item_id_aux",
                                          // 목록 데이터를 반복 연결
                                          "binding_type": "collection",
                                          // 목록 이름
                                          "binding_collection_name": "$item_collection_name"
                                        },
                                        {
                                          // 계산/조건 결과를 연결
                                          "binding_type": "view",
                                          // 계산식/참조 값
                                          "source_property_name": "(#item_id_aux / 65536)",
                                          // 결과가 들어갈 속성
                                          "target_property_name": "#item_id"
                                        },
                                        {
                                          // 계산/조건 결과를 연결
                                          "binding_type": "view",
                                          // 계산식/참조 값
                                          "source_property_name": "('item_id_aux: ' + #item_id_aux)",
                                          // 결과가 들어갈 속성
                                          "target_property_name": "#item_id_aux_string"
                                        },
                                        {
                                          // 계산/조건 결과를 연결
                                          "binding_type": "view",
                                          // 계산식/참조 값
                                          "source_property_name": "('item_id: ' + #item_id)",
                                          // 결과가 들어갈 속성
                                          "target_property_name": "#item_id_string"
                                        },
                                        {
                                          // 계산/조건 결과를 연결
                                          "binding_type": "view",
                                          // 계산식/참조 값
                                          "source_property_name": "('item_id_aux(cb): ' + (#item_id * 65536))",
                                          // 결과가 들어갈 속성
                                          "target_property_name": "#item_id_aux_cb_string"
                                        },
                                        {
                                          // 계산/조건 결과를 연결
                                          "binding_type": "view",
                                          // 계산식/참조 값
                                          "source_property_name": "(#item_id_aux_string + '\n' + #item_id_string + '\n' + #item_id_aux_cb_string)",
                                          // 결과가 들어갈 속성
                                          "target_property_name": "#text"
                                        }
                                      ]
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                      {
                        // 가져올 값 이름
                        "binding_name": "#hover_text",
                        // 목록 데이터를 반복 연결
                        "binding_type": "collection",
                        // 목록 이름
                        "binding_collection_name": "$item_collection_name"
                      },
                      {
                        // 계산/조건 결과를 연결
                        "binding_type": "view",
                        // 계산식/참조 값
                        "source_property_name": "(not (#hover_text = ''))",
                        // 결과가 들어갈 속성
                        "target_property_name": "#visible"
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "highlight_slot_panel/highlight": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_highlight_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_highlight_alpha",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "remove",
        // ???/?? ??
        "where": {
          // 가져온 값을 다른 속성으로 연결
          "binding_name_override": "#visible"
        }
      },
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "hover_text_with_durability@common.hover_text": {
              // 완전히 제거(공간도 없음)
              "ignored": "($rainbowpie_ui_flag_86c54726 or (not $rainbowpie_ui_feature_inventory_durability) or (not $durability_bar_required))",
              // 겹치는 순서(숫자 클수록 위)
              "layer": 29,
              // 오버라이드 가능한 변수
              "$hover_text_binding_name|default": "#hover_text",
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 가져올 값 이름
                  "binding_name": "$hover_text_binding_name",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#hover_text_str",
                  // 목록 데이터를 반복 연결
                  "binding_type": "collection",
                  // 목록 이름
                  "binding_collection_name": "$item_collection_name"
                },
                {
                  // 가져올 값 이름
                  "binding_name": "#item_durability_total_amount",
                  // 목록 데이터를 반복 연결
                  "binding_type": "collection",
                  // 목록 이름
                  "binding_collection_name": "$item_collection_name"
                },
                {
                  // 가져올 값 이름
                  "binding_name": "#item_durability_current_amount",
                  // 목록 데이터를 반복 연결
                  "binding_type": "collection",
                  // 목록 이름
                  "binding_collection_name": "$item_collection_name"
                },
                {
                  // 계산/조건 결과를 연결
                  "binding_type": "view",
                  // 계산식/참조 값
                  "source_property_name": "(((#amount_current > #item_durability_current_amount) * - 1 + 1) * ((#amount_current < #item_durability_current_amount) * 1 + #amount_current))",
                  // 결과가 들어갈 속성
                  "target_property_name": "#amount_current",
                  // ?? ???
                  "binding_condition": "always_when_visible"
                },
                {
                  // 계산/조건 결과를 연결
                  "binding_type": "view",
                  // 계산식/참조 값
                  "source_property_name": "(((#amount_total > #item_durability_total_amount) * - 1 + 1) * ((#amount_total < #item_durability_total_amount) * 1 + #amount_total))",
                  // 결과가 들어갈 속성
                  "target_property_name": "#amount_total",
                  // ?? ???
                  "binding_condition": "always_when_visible"
                },
                {
                  // 계산/조건 결과를 연결
                  "binding_type": "view",
                  // 계산식/참조 값
                  "source_property_name": "(#hover_text_str + '\n§2Durability: ' + #amount_current + '/' + #amount_total)",
                  // 결과가 들어갈 속성
                  "target_property_name": "#hover_text"
                },
                {
                  // 계산/조건 결과를 연결
                  "binding_type": "view",
                  // 계산식/참조 값
                  "source_property_name": "(not ((#item_durability_current_amount = 0) and (#item_durability_total_amount = 0)))",
                  // 결과가 들어갈 속성
                  "target_property_name": "#visible"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "highlight_slot_panel/white_border": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $rainbowpie_ui_flag_inventory_cell_highlight_border)",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_inventory_cell_highlight_border_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_inventory_cell_highlight_border_alpha"
  },

  // ???/?? ??
  "item_renderer": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // 가져올 값 이름
            "binding_name": "#using_touch"
          },
          {
            // 계산/조건 결과를 연결
            "binding_type": "view",
            // 계산식/참조 값
            "source_property_name": "(#fade_in_icon_time_seconds * #using_touch)",
            // 결과가 들어갈 속성
            "target_property_name": "#fade_in_icon_time_seconds",
            // 완전히 제거(공간도 없음)
            "ignored": "$rainbowpie_ui_flag_flying_item_renderer"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "flying_item_renderer": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // 가져올 값 이름
            "binding_name": "#using_touch",
            // 가져온 값을 다른 속성으로 연결
            "binding_name_override": "#visible",
            // 완전히 제거(공간도 없음)
            "ignored": "$rainbowpie_ui_flag_flying_item_renderer"
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "inventory_screen_common": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "inventory_screen",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventory_screen": true,
    // ?? ??
    "force_render_below": "$desktop_screen",
    // 오버라이드 가능한 변수
    "$screen_animations|default": [
      "@rainbowpie_ui_animations.container_screen_exit_animation_push",
      "@rainbowpie_ui_animations.container_screen_exit_animation_pop",
      "@rainbowpie_ui_animations.container_screen_entrance_animation_push",
      "@rainbowpie_ui_animations.container_screen_entrance_animation_pop",
      "@common.screen_exit_animation_push_fade",
      "@common.screen_exit_animation_pop_fade",
      "@common.screen_entrance_animation_push_fade",
      "@common.screen_entrance_animation_pop_fade"
    ]
  },

  // ???/?? ??
  "text_edit_box_label": {
    // 오버라이드 가능한 변수
    "$place_holder_text_font_type|default": "default",
    // 오버라이드 가능한 변수
    "$place_holder_text_backup_font_type|default": "default",
    // ??
    "font_type": "$place_holder_text_font_type",
    // ?? ?? ?
    "backup_font_type": "$place_holder_text_backup_font_type"
  },

  // ???/?? ??
  "text_edit_box_place_holder_label": {
    // 오버라이드 가능한 변수
    "$place_holder_text_font_type|default": "default",
    // 오버라이드 가능한 변수
    "$place_holder_text_backup_font_type|default": "default",
    // ??
    "font_type": "$place_holder_text_font_type",
    // ?? ?? ?
    "backup_font_type": "$place_holder_text_backup_font_type"
  },

  // ???/?? ??
  "text_edit_box/centering_panel/clipper_panel/$text_edit_text_control": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_editbox_enabled"
  },

  // ???/?? ??
  "text_edit_box/centering_panel/clipper_panel/visibility_panel/place_holder_control": {
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_localui_editbox_enabled",
        // 오버라이드 가능한 변수
        "$place_holder_text_font_type": "$rainbowpie_ui_theme_global_font_name",
        // 오버라이드 가능한 변수
        "$place_holder_text_backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
        // 오버라이드 가능한 변수
        "$place_holder_text_color": "$rainbowpie_ui_theme_input_placeholder_color"
      }
    ]
  },

  // "text_edit_box/centering_panel/clipper_panel/visibility_panel/place_holder_control": {
  //   "ignored": "$rainbowpie_localui_editbox_enabled"
  // },

  // "text_edit_box/centering_panel/clipper_panel/visibility_panel": {
  //   "modifications": [
  //     {
  //       "array_name": "controls",
  //       "operation": "insert_front",
  //       "value": [
  //         {
  //           "place_holder_control_rainbowpie@common.empty_panel": {
  //             "ignored": "(not $rainbowpie_localui_editbox_enabled)",
  //             "controls": [
  //               {
  //                 "place_holder_control@rainbowpie_ui_common.text_edit_box_place_holder_label": {
  //                   "layer": 1,
  //                   "size": "$placeholder_label_size",
  //                   "offset": "$text_edit_box_label_offset",
  //                   "min_size": "$text_edit_box_label_min_size",
  //                   "anchor_from": "$text_edit_box_label_anchor_point",
  //                   "anchor_to": "$text_edit_box_label_anchor_point",
  //                   "$text_alpha|default": "$alpha",
  //                   "$locked_text_alpha|default": "$disabled_alpha",
  //                   "$locked_color|default": "$disabled_color"
  //                 }
  //               }
  //             ]
  //           }
  //         }
  //       ]
  //     }
  //   ]
  // },

  "text_edit_box/centering_panel/clipper_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "text_edit_box_label@common.empty_panel": {
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_localui_editbox_enabled)",
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "$text_edit_text_control@rainbowpie_ui_common.text_edit_box_label": {
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 1,
                    // 가로/세로 크기
                    "size": "$text_edit_box_label_size",
                    // 기준점에서 이동하는 거리
                    "offset": "$text_edit_box_label_offset",
                    // ?? ?? ?
                    "min_size": "$text_edit_box_label_min_size",
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "$text_edit_box_label_anchor_point",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "$text_edit_box_label_anchor_point",
                    // ?? ?? ?
                    "font_size": "$font_size",
                    // 오버라이드 가능한 변수
                    "$text_alpha|default": "$alpha",
                    // 오버라이드 가능한 변수
                    "$locked_text_alpha|default": "$disabled_alpha",
                    // 오버라이드 가능한 변수
                    "$locked_color|default": "$disabled_color"
                  }
                }
              ]
            }
          }

        ]
      }
    ]
  },

  // ???/?? ??
  "text_edit_box/locked": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "replace",
        // ???/?? ??
        "where": {
          // 다른 템플릿을 가져와서 확장(상속)
          "edit_box_indent@$text_background_default": {
            // 오버라이드 가능한 변수
            "$color": "$disabled_color",
            // 오버라이드 가능한 변수
            "$alpha": "$disabled_alpha"
          }
        },
        // ??? ?
        "value": {
          // 다른 템플릿을 가져와서 확장(상속)
          "edit_box_indent@common.empty_panel": {
            // 이 안에 들어가는 부품 목록
            "controls": [
              {
                // 다른 템플릿을 가져와서 확장(상속)
                "edit_box_indent_vanilla@$text_background_default": {
                  // 완전히 제거(공간도 없음)
                  "ignored": "$rainbowpie_localui_editbox_enabled",
                  // 오버라이드 가능한 변수
                  "$color": "$disabled_color",
                  // 오버라이드 가능한 변수
                  "$alpha": "$disabled_alpha"
                }
              },
              {
                // 다른 템플릿을 가져와서 확장(상속)
                "edit_box_indent_rainbowpie@rainbowpie_ui_common.edit_box_indent_locked": {
                  // 완전히 제거(공간도 없음)
                  "ignored": "(not $rainbowpie_localui_editbox_enabled)"
                }
              }
            ]
          }
        }
      }
    ]
  },

  // ???/?? ??
  "text_edit_box": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_editbox_enabled|default": false,
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "replace",
        // ???/?? ??
        "where": {
          // 다른 템플릿을 가져와서 확장(상속)
          "default@$text_background_default": {}
        },
        // ??? ?
        "value": {
          // 다른 템플릿을 가져와서 확장(상속)
          "default@common.empty_panel": {
            // 이 안에 들어가는 부품 목록
            "controls": [
              {
                // 다른 템플릿을 가져와서 확장(상속)
                "edit_box_indent_vanilla@$text_background_default": {
                  // 완전히 제거(공간도 없음)
                  "ignored": "$rainbowpie_localui_editbox_enabled"
                }
              },
              {
                // 다른 템플릿을 가져와서 확장(상속)
                "edit_box_indent_rainbowpie@rainbowpie_ui_common.edit_box_indent": {
                  // 완전히 제거(공간도 없음)
                  "ignored": "(not $rainbowpie_localui_editbox_enabled)"
                }
              }
            ]
          }
        }
      },
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "replace",
        // ???/?? ??
        "where": {
          // 다른 템플릿을 가져와서 확장(상속)
          "hover@$text_background_hover": {}
        },
        // ??? ?
        "value": {
          // 다른 템플릿을 가져와서 확장(상속)
          "hover@common.empty_panel": {
            // 이 안에 들어가는 부품 목록
            "controls": [
              {
                // 다른 템플릿을 가져와서 확장(상속)
                "edit_box_indent_vanilla@$text_background_hover": {
                  // 완전히 제거(공간도 없음)
                  "ignored": "$rainbowpie_localui_editbox_enabled"
                }
              },
              {
                // 다른 템플릿을 가져와서 확장(상속)
                "edit_box_indent_rainbowpie@rainbowpie_ui_common.edit_box_indent_hover": {
                  // 완전히 제거(공간도 없음)
                  "ignored": "(not $rainbowpie_localui_editbox_enabled)"
                }
              }
            ]
          }
        }
      },
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "replace",
        // ???/?? ??
        "where": {
          // 다른 템플릿을 가져와서 확장(상속)
          "pressed@$text_background_hover": {}
        },
        // ??? ?
        "value": {
          // 다른 템플릿을 가져와서 확장(상속)
          "pressed@common.empty_panel": {
            // 이 안에 들어가는 부품 목록
            "controls": [
              {
                // 다른 템플릿을 가져와서 확장(상속)
                "edit_box_indent_vanilla@$text_background_hover": {
                  // 완전히 제거(공간도 없음)
                  "ignored": "$rainbowpie_localui_editbox_enabled"
                }
              },
              {
                // 다른 템플릿을 가져와서 확장(상속)
                "edit_box_indent_rainbowpie@rainbowpie_ui_common.edit_box_indent_hover": {
                  // 완전히 제거(공간도 없음)
                  "ignored": "(not $rainbowpie_localui_editbox_enabled)"
                }
              }
            ]
          }
        }
      }
    ]
  },

  // ???/?? ??
  "slider_bar_default/transparent_grey": {
    // 가로/세로 크기
    "size": [ "100% - 2px", "100% - 2px" ]
  },

  // ???/?? ??
  "slider": {
    // 오버라이드 가능한 변수
    "$slider_step_factory_control_ids": {
      // ?? ??
      "slider_step": "@rainbowpie_ui_common.slider_step",
      // ?? ??
      "slider_step_hover": "@rainbowpie_ui_common.slider_step_hover",
      // ?? ??
      "slider_step_progress": "@rainbowpie_ui_common.slider_step_progress",
      // ?? ??
      "slider_step_progress_hover": "@rainbowpie_ui_common.slider_step_progress_hover"
    }
  },

  // ???/?? ??
  "slider_box": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_sliderbar_enabled|default": false,
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_localui_sliderbar_enabled",
        // 오버라이드 가능한 변수
        "$slider_box_layout": "rainbowpie_ui_common.slider_button_layout",
        // 오버라이드 가능한 변수
        "$slider_box_hover_layout": "rainbowpie_ui_common.slider_button_hover_layout",
        // 오버라이드 가능한 변수
        "$slider_box_locked_layout": "rainbowpie_ui_common.slider_button_locked_layout",
        // 오버라이드 가능한 변수
        "$slider_box_indent_layout": "rainbowpie_ui_common.slider_button_indent_layout",
        // 오버라이드 가능한 변수
        "$slider_box_size": [ 10, 13 ]
      }
    ]
  },

  // ???/?? ??
  "slider_bar_default": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_sliderbar_enabled|default": false,
    // 가로/세로 크기
    "size": [ "100% + 12px", 15 ],
    // 사용할 이미지 경로
    "texture": "",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_localui_sliderbar_enabled",
        // 오버라이드 가능한 변수
        "$background_control": "rainbowpie_ui_common.slider_background",
        // 오버라이드 가능한 변수
        "$progress_control": "rainbowpie_ui_common.slider_progress"
      }
    ]
  },

  // ???/?? ??
  "slider_bar_hover": {
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_localui_sliderbar_enabled",
        // 오버라이드 가능한 변수
        "$background_control": "rainbowpie_ui_common.slider_background_hover",
        // 오버라이드 가능한 변수
        "$progress_control": "rainbowpie_ui_common.slider_progress_hover"
      }
    ]
  },

  // ???/?? ??
  "scroll_view_control": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_scrollbar_enabled|default": false,
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_localui_scrollbar_enabled",
        // FIX: Vanilla Dropdown background
        // "$scroll_background_image_control": "rainbowpie_ui_controls.scroll_background_image",
        "$scroll_track_image_control": "rainbowpie_ui_controls.scroll_indent_image",
        // 오버라이드 가능한 변수
        "$scroll_box_mouse_image_control": "rainbowpie_ui_controls.scrollbar_box_image"
      }
    ]
  },

  // ???/?? ??
  "scroll_box/box/mouse_box": {
    // 완전히 제거(공간도 없음)
    "ignored": false
  },

  // ???/?? ??
  "scroll_box/box/touch_box": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "scrolling_panel/scroll_touch": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "scrolling_panel/scroll_mouse": {
    // 완전히 제거(공간도 없음)
    "ignored": false
  },

  // ???/?? ??
  "safe_zone_stack/top_outer_control": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_modified"
  },

  // ???/?? ??
  "safe_zone_stack/top_inner_control": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_modified"
  },

  // ???/?? ??
  "safe_zone_stack/header_bar": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_modified"
  },

  // "safezone_inner_matrix/outer_top/top_side_control": {
  //   "ignored": "$rainbowpie_localui_modified"
  // },

  // "safezone_inner_matrix/inner_top/top_side_control": {
  //   "ignored": "$rainbowpie_localui_modified"
  // },

  "screen_exit_animation_push_offset": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_modified"
  },

  // ???/?? ??
  "screen_exit_animation_pop_offset": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_modified"
  },

  // ???/?? ??
  "screen_entrance_animation_push_offset": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_modified"
  },

  // ???/?? ??
  "screen_entrance_animation_pop_offset": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_modified"
  },

  // ???/?? ??
  "base_screen/variables_button_mappings_and_controls/safezone_screen_matrix": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_backup_screen",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_content|default": "$screen_content"
  },

  // ???/?? ??
  "base_screen/loading_bars_background": {
    // 사용할 이미지 경로
    "texture": "",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "background": {
              // 이미지 표시
              "type": "image",
              // 사용할 이미지 경로
              "texture": "($rainbowpie_ui_path_home + '/r_white')",
              // ?? (R,G,B,A)
              "color": "$rainbowpie_ui_theme_dialog_background_color",
              // ???
              "alpha": "$rainbowpie_ui_theme_dialog_background_alpha",
              // 가로/세로 크기
              "size": [ "100%", 30 ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "loading_bars@rainbowpie_ui_common.progress_loading_bars": {
                    // 가로/세로 크기
                    "size": [ "100% - 16px", 3 ],
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 30
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "base_screen/loading_bars_background/loading_bars": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "base_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_backup_screen|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_overlay_screen|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_inventory_screen|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_ingameSafezoneOnly|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_ingamebg_ignored|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_background_animations|default": [
      "@common.screen_exit_animation_push_fade",
      "@common.screen_exit_animation_pop_fade",
      "@common.screen_entrance_animation_push_fade",
      "@common.screen_entrance_animation_pop_fade"
    ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "null",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias_formatted": "($rainbowpie_localui_screen_alias + ',')",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_backup_screen_content|default": "common.base_screen_empty_panel",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_overlay_screen_content|default": "common.base_screen_empty_panel",

    // 오버라이드 가능한 변수
    "$close_on_player_hurt": false,
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "screen_extra_panel": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_background_bsf_need|default": true,
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_background_longer_anim|default": false,
              // 이 안에 들어가는 부품 목록
              "controls": [
                // Fix that blank screen when switching screens
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "background_backup@common.safezone_outer_matrix": {
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_screenroot_ignore_dialogs": true,
                    // 완전히 제거(공간도 없음)
                    "ignored": "((not $is_pregame) or (not $rainbowpie_localui_background_bsf_need) or $rainbowpie_localui_inventory_screen)",
                    // ???
                    "alpha": 0.0,
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": -10,
                    // ??? ?? ?
                    "propagate_alpha": true,
                    // ????? ?? ?
                    "animation_reset_name": "screen_animation_reset",
                    // ????? ?? ?
                    "disable_anim_fast_forward": false,
                    // 애니메이션 목록
                    "anims": [
                      "@rainbowpie_ui_animations.background_exit_animation_push_fade",
                      "@rainbowpie_ui_animations.background_exit_animation_pop_fade",
                      "@rainbowpie_ui_animations.background_entrance_animation_push_fade_long",
                      "@rainbowpie_ui_animations.background_entrance_animation_push_fade",
                      "@rainbowpie_ui_animations.background_entrance_animation_pop_fade"
                    ],
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_screen_content": "rainbowpie_ui_common.screen_background"
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "screen_panel/root_screen_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "screen_panel": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenroot_ignore_dialogs|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_content|default": "$screen_content",
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "screen_debug_panel": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_debug)",
              // 겹치는 순서(숫자 클수록 위)
              "layer": 1000,
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "debug_screen_content@rainbowpie_ui_common.text_label": {
                    // 완전히 제거(공간도 없음)
                    "ignored": "((not $rainbowpie_ui_debug_screen_content) or (not (($rainbowpie_ui_flag_overlay_screen_alias - $rainbowpie_localui_screen_alias_formatted) = $rainbowpie_ui_flag_overlay_screen_alias)) or ($rainbowpie_localui_screen_content = 'rainbowpie_ui_common.screen_background'))",
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "top_right",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "top_right",
                    // 보여줄 글자
                    "text": "($screen_content + '\n' + $rainbowpie_localui_backup_screen_content + '\n' + $rainbowpie_localui_overlay_screen_content)"
                  }
                }
              ]
            }
          },
          {
            // ???/?? ??
            "rainbowpie_gamepad_connect_tip": {
              // 완전히 제거(공간도 없음)
              "ignored": "((not $rainbowpie_ui_feature_gamepad_connect_tip) or (not (($rainbowpie_ui_flag_overlay_screen_alias - $rainbowpie_localui_screen_alias_formatted) = $rainbowpie_ui_flag_overlay_screen_alias)) or ($rainbowpie_localui_screen_content = 'rainbowpie_ui_common.screen_background') or $game_pad)",
              // 이미지 표시
              "type": "image",
              // 사용할 이미지 경로
              "texture": "textures/ui/White",
              // ?? (R,G,B,A)
              "color": "$rainbowpie_ui_theme_toast_background_color",
              // ???
              "alpha": "$rainbowpie_ui_theme_toast_background_alpha",
              // 가로/세로 크기
              "size": [ 180, 30 ],
              // 기준점에서 이동하는 거리
              "offset": [ 0, 22 ],
              // 기준점(어디에서 시작할지)
              "anchor_from": "top_middle",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "top_middle",
              // 겹치는 순서(숫자 클수록 위)
              "layer": 80,
              // 애니메이션 목록
              "anims": [
                // "@rainbowpie_ui_common.rainbowpie_gamepad_connect_tip_anim_start"
              ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // ???/?? ??
                  "section_icon": {
                    // 이미지 표시
                    "type": "image",
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "left_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "left_middle",
                    // 기준점에서 이동하는 거리
                    "offset": [ 2, 0 ],
                    // 사용할 이미지 경로
                    "texture": "($rainbowpie_ui_path_theme + '/icon/settings/controls/controller')",
                    // 가로/세로 크기
                    "size": [ "100%y", "100% - 4px" ],
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 3
                  }
                },
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "title@rainbowpie_ui_common.text_label_notheme": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "top_left",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "top_left",
                    // 기준점에서 이동하는 거리
                    "offset": [ 30, 2 ],
                    // 보여줄 글자
                    "text": "rainbowpie.ui.toast.gamepad_connected"
                  }
                }
              ],
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 가져올 값 이름
                  "binding_name": "#is_using_gamepad",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#visible"
                }
              ]
            }
          },
          { "rainbowpieui_root_screen_panel@$rainbowpie_localui_screen_content": {} }
        ]
      }
    ]
  },

  // ???/?? ??
  "screen_panel/popup_dialog_factory": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_screenroot_ignore_dialogs",
    // ???/?? ??
    "factory_variables": [
      "$rainbowpie_ui_theme_global_font_name",
      "$rainbowpie_ui_theme_global_font_backup_name",
      "$is_pregame"
    ]
  },

  // ???/?? ??
  "base_screen/variables_button_mappings_and_controls/bg_no_safezone_screen_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_modified"
  },

  // ???/?? ??
  "base_screen/variables_button_mappings_and_controls/screen_background": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_localui_modified"
  },

  // ???/?? ??
  "base_screen/variables_button_mappings_and_controls": {
    // Compatibility for servers or other resource packs
    // The variables here will be overwritten when the server loads the resource packs.
    "$is_zeqa|default": -1, // Zeqa Network (Server)
    // 오버라이드 가능한 변수
    "$cubecraft_green|default": -1, // CubeCraft (Server)
    // 오버라이드 가능한 변수
    "$bb_version|default": -1, // Better Bedrock UI (RP)
    // 오버라이드 가능한 변수
    "$dabuui_bool|default": -1, // Dabu UI (RP)
    // 오버라이드 가능한 변수
    "$is_netease|default": -1, // China Version

    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "($screen_content = 'common.base_screen_empty_panel')",
            // 오버라이드 가능한 변수
            "$rainbowpie_localui_modified": true
          },
          // Zeqa Network
          {
            // 이 조건이 맞으면 적용
            "requires": "(not ($is_zeqa = -1))",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_identifier": "78239b75_zeqa"
          },
          // CubeCraft
          // In CubeCraft's UI resource pack, $cubecraft_green will be overwritten as an array format, which will not be equal to "string"
          {
            // 이 조건이 맞으면 적용
            "requires": "(not ($cubecraft_green = -1))",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_identifier": "d29f22ac_cubecraft"
          },
          // The Hive UI
          // This method may result in false positives, but it is the only way to detect
          {
            // 이 조건이 맞으면 적용
            "requires": "((($transition_time_push_size * 1000) = 150) and (($transition_time_pop_size * 1000) = 150) and (($transition_time_push * 1000) = 150) and (($transition_time_pop * 1000) = 150) and (($container_transition_time_push * 1000) = 150) and (($container_transition_time_pop * 1000) = 150))",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_identifier": "290b8fe4_hivebedrock"
          },
          // Better Bedrock UI
          {
            // 이 조건이 맞으면 적용
            "requires": "(not ($bb_version = -1))",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_resourcepack_identifier": "d5e1b7c2_betterbedrock"
          },
          // Dabu UI
          {
            // 이 조건이 맞으면 적용
            "requires": "(not ($dabuui_bool = -1))"//,
            // "$rainbowpie_ui_flag_resourcepack_identifier": "c740985b_dabuui"
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_localui_modified and not $rainbowpie_localui_inventory_screen)",
            // 오버라이드 가능한 변수
            "$transition_time_push": "$rainbowpie_ui_animation_transition_time",
            // 오버라이드 가능한 변수
            "$transition_time_pop": "$rainbowpie_ui_animation_transition_time",
            // 오버라이드 가능한 변수
            "$transition_time_push_size": "$rainbowpie_ui_animation_transition_time",
            // 오버라이드 가능한 변수
            "$transition_time_pop_size": "$rainbowpie_ui_animation_transition_time",
            // 오버라이드 가능한 변수
            "$container_transition_time_push": "$rainbowpie_ui_animation_transition_time",
            // 오버라이드 가능한 변수
            "$container_transition_time_pop": "$rainbowpie_ui_animation_transition_time"
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_localui_modified and $rainbowpie_localui_inventory_screen and $rainbowpie_ui_flag_84df7492)",
            // 오버라이드 가능한 변수
            "$transition_time_push": "$rainbowpie_ui_animation_container_v2_transition_time",
            // 오버라이드 가능한 변수
            "$transition_time_pop": "$rainbowpie_ui_animation_container_v2_transition_time",
            // 오버라이드 가능한 변수
            "$transition_time_push_size": "$rainbowpie_ui_animation_container_v2_transition_time",
            // 오버라이드 가능한 변수
            "$transition_time_pop_size": "$rainbowpie_ui_animation_container_v2_transition_time",
            // 오버라이드 가능한 변수
            "$container_transition_time_push": "$rainbowpie_ui_animation_container_v2_transition_time",
            // 오버라이드 가능한 변수
            "$container_transition_time_pop": "$rainbowpie_ui_animation_container_v2_transition_time"
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_localui_modified and $rainbowpie_localui_inventory_screen and not $rainbowpie_ui_flag_84df7492)",
            // 오버라이드 가능한 변수
            "$transition_time_push": "$rainbowpie_ui_animation_container_transition_time",
            // 오버라이드 가능한 변수
            "$transition_time_pop": "$rainbowpie_ui_animation_container_transition_time",
            // 오버라이드 가능한 변수
            "$transition_time_push_size": "$rainbowpie_ui_animation_container_transition_time",
            // 오버라이드 가능한 변수
            "$transition_time_pop_size": "$rainbowpie_ui_animation_container_transition_time",
            // 오버라이드 가능한 변수
            "$container_transition_time_push": "$rainbowpie_ui_animation_container_transition_time",
            // 오버라이드 가능한 변수
            "$container_transition_time_pop": "$rainbowpie_ui_animation_container_transition_time"
          }
        ]
      },
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "safezone_screen_backup_matrix@common.safezone_outer_matrix": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_screen_content": "$rainbowpie_localui_backup_screen_content",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_localui_backup_screen)",
              // 애니메이션 목록
              "anims": "$screen_animations",
              // ????? ?? ?
              "animation_reset_name": "screen_animation_reset",
              // ??? ?? ?
              "propagate_alpha": true,
              // ????? ?? ?
              "disable_anim_fast_forward": true,
              // 겹치는 순서(숫자 클수록 위)
              "layer": "$safezone_screen_matrix_layer"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "safezone_screen_overlay_matrix@common.safezone_outer_matrix": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_screenroot_ignore_dialogs": true,
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_screen_content": "$rainbowpie_localui_overlay_screen_content",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_localui_overlay_screen)",
              // 애니메이션 목록
              "anims": "$screen_animations",
              // ????? ?? ?
              "animation_reset_name": "screen_animation_reset",
              // ??? ?? ?
              "propagate_alpha": true,
              // ????? ?? ?
              "disable_anim_fast_forward": true,
              // 겹치는 순서(숫자 클수록 위)
              "layer": "($safezone_screen_matrix_layer + 150)"
            }
          }
        ]
      },
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "rainbowpieui_screen_background_panel": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 완전히 제거(공간도 없음)
              "ignored": "((not (($rainbowpie_ui_flag_overlay_screen_alias - $rainbowpie_localui_screen_alias_formatted) = $rainbowpie_ui_flag_overlay_screen_alias)) or ($screen_content = 'rainbowpie_ui_common.screen_background'))",
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_dialog_ignored": true,
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // ???/?? ??
                  "debug_panel": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 완전히 제거(공간도 없음)
                    "ignored": "(not $rainbowpie_ui_debug)",
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 1000,
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // ???/?? ??
                        "debug_screen_animation": {
                          // 패널: 다른 부품을 담는 바닥판
                          "type": "panel",
                          // 완전히 제거(공간도 없음)
                          "ignored": "((not $rainbowpie_ui_debug_screen_animation) or (not (($rainbowpie_ui_flag_overlay_screen_alias - $rainbowpie_localui_screen_alias_formatted) = $rainbowpie_ui_flag_overlay_screen_alias)))",
                          // 이 안에 들어가는 부품 목록
                          "controls": [
                            {
                              // ???/?? ??
                              "debug_screen_animation_dialog": {
                                // 마우스/커서 따라다니는 패널
                                "type": "input_panel",
                                // 가로/세로 크기
                                "size": [ 120, "100%c" ],
                                // 기준점에서 이동하는 거리
                                "offset": [ 0, 14 ],
                                // 붙일 위치(어디에 놓을지)
                                "anchor_to": "top_right",
                                // 기준점(어디에서 시작할지)
                                "anchor_from": "top_right",
                                // ??? ??
                                "draggable": "both",
                                // 입력 키/버튼과 동작 연결
                                "button_mappings": [
                                  {
                                    // 어떤 입력을 받을지
                                    "from_button_id": "button.menu_select",
                                    // 어떤 동작을 실행할지
                                    "to_button_id": "button.menu_select",
                                    // 입력 시점(pressed 등)
                                    "mapping_type": "pressed"
                                  }
                                ],
                                // 이 안에 들어가는 부품 목록
                                "controls": [
                                  {
                                    // 다른 템플릿을 가져와서 확장(상속)
                                    "title_background@rainbowpie_ui_dialog.header_background": {
                                      // 가로/세로 크기
                                      "size": [ "100%", 23 ],
                                      // 붙일 위치(어디에 놓을지)
                                      "anchor_to": "top_middle",
                                      // 기준점(어디에서 시작할지)
                                      "anchor_from": "top_middle",
                                      // ?? (R,G,B,A)
                                      "color": "$rainbowpie_ui_theme_dialog_background_color",
                                      // ???
                                      "alpha": "$rainbowpie_ui_theme_dialog_background_alpha",
                                      // 이 안에 들어가는 부품 목록
                                      "controls": [
                                        {
                                          // 다른 템플릿을 가져와서 확장(상속)
                                          "title_label@rainbowpie_ui_common.title_label": {
                                            // 가로/세로 크기
                                            "size": [ "default", "default" ],
                                            // 붙일 위치(어디에 놓을지)
                                            "anchor_to": "center",
                                            // 기준점(어디에서 시작할지)
                                            "anchor_from": "center",
                                            // 보여줄 글자
                                            "text": "SCREEN ANIMATION DEBUG",
                                            // 겹치는 순서(숫자 클수록 위)
                                            "layer": 10
                                          }
                                        }
                                      ]
                                    }
                                  },
                                  {
                                    // ???/?? ??
                                    "content_panel": {
                                      // 마우스/커서 따라다니는 패널
                                      "type": "input_panel",
                                      // 가로/세로 크기
                                      "size": [ "100%", "100%c" ],
                                      // 붙일 위치(어디에 놓을지)
                                      "anchor_to": "bottom_middle",
                                      // 기준점(어디에서 시작할지)
                                      "anchor_from": "bottom_middle",
                                      // 이 안에 들어가는 부품 목록
                                      "controls": [
                                        {
                                          // 다른 템플릿을 가져와서 확장(상속)
                                          "title_background@rainbowpie_ui_dialog.header_background": {
                                            // 가로/세로 크기
                                            "size": [ "100%", "100%c + 0.5px" ],
                                            // 이 안에 들어가는 부품 목록
                                            "controls": [
                                              {
                                                // ???/?? ??
                                                "button_panel": {
                                                  // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                                  "type": "stack_panel",
                                                  // 가로/세로 크기
                                                  "size": [ "100%", "100%c" ],
                                                  // 붙일 위치(어디에 놓을지)
                                                  "anchor_to": "bottom_middle",
                                                  // 기준점(어디에서 시작할지)
                                                  "anchor_from": "bottom_middle",
                                                  // 이 안에 들어가는 부품 목록
                                                  "controls": [
                                                    {
                                                      // 다른 템플릿을 가져와서 확장(상속)
                                                      "screen_animation_reset@common_buttons.light_text_button": {
                                                        // 오버라이드 가능한 변수
                                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                                        // 오버라이드 가능한 변수
                                                        "$pressed_button_name": "screen_animation_reset",
                                                        // 오버라이드 가능한 변수
                                                        "$button_text": "screen_animation_reset",
                                                        // 가로/세로 크기
                                                        "size": [ 120, 18 ]
                                                      }
                                                    },
                                                    {
                                                      // 다른 템플릿을 가져와서 확장(상속)
                                                      "screen.exit_push@common_buttons.light_text_button": {
                                                        // 오버라이드 가능한 변수
                                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                                        // 오버라이드 가능한 변수
                                                        "$pressed_button_name": "screen.exit_push",
                                                        // 오버라이드 가능한 변수
                                                        "$button_text": "screen.exit_push",
                                                        // 가로/세로 크기
                                                        "size": [ 120, 18 ]
                                                      }
                                                    },
                                                    {
                                                      // 다른 템플릿을 가져와서 확장(상속)
                                                      "screen.exit_pop@common_buttons.light_text_button": {
                                                        // 오버라이드 가능한 변수
                                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                                        // 오버라이드 가능한 변수
                                                        "$pressed_button_name": "screen.exit_pop",
                                                        // 오버라이드 가능한 변수
                                                        "$button_text": "screen.exit_pop",
                                                        // 가로/세로 크기
                                                        "size": [ 120, 18 ]
                                                      }
                                                    },
                                                    {
                                                      // 다른 템플릿을 가져와서 확장(상속)
                                                      "screen.entrance_push@common_buttons.light_text_button": {
                                                        // 오버라이드 가능한 변수
                                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                                        // 오버라이드 가능한 변수
                                                        "$pressed_button_name": "screen.entrance_push",
                                                        // 오버라이드 가능한 변수
                                                        "$button_text": "screen.entrance_push",
                                                        // 가로/세로 크기
                                                        "size": [ 120, 18 ]
                                                      }
                                                    },
                                                    {
                                                      // 다른 템플릿을 가져와서 확장(상속)
                                                      "screen.entrance_pop@common_buttons.light_text_button": {
                                                        // 오버라이드 가능한 변수
                                                        "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
                                                        // 오버라이드 가능한 변수
                                                        "$pressed_button_name": "screen.entrance_pop",
                                                        // 오버라이드 가능한 변수
                                                        "$button_text": "screen.entrance_pop",
                                                        // 가로/세로 크기
                                                        "size": [ 120, 18 ]
                                                      }
                                                    }
                                                  ]
                                                }
                                              }
                                            ]
                                          }
                                        }
                                      ]
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "rainbowpieui_screen_background@common.safezone_outer_matrix": {
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_screenroot_ignore_dialogs": true,
                    // 애니메이션 목록
                    "anims": "$rainbowpie_localui_background_animations",
                    // ????? ?? ?
                    "animation_reset_name": "screen_animation_reset",
                    // ??? ?? ?
                    "propagate_alpha": true,
                    // ????? ?? ?
                    "disable_anim_fast_forward": true,
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": "($safezone_screen_matrix_layer - 10)",
                    // 오버라이드 가능한 변수
                    "$rainbowpie_localui_screen_content": "rainbowpie_ui_common.screen_background"
                  }
                },
                {
                  // ???/?? ??
                  "ingame_background_panel": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 완전히 제거(공간도 없음)
                    "ignored": "($rainbowpie_localui_screenbackground_ingameSafezoneOnly or $rainbowpie_localui_screenbackground_ingamebg_ignored or $rainbowpie_localui_inventory_screen or $is_pregame or not (($rainbowpie_ui_flag_overlay_screen_alias - $rainbowpie_localui_screen_alias_formatted) = $rainbowpie_ui_flag_overlay_screen_alias))",
                    // 애니메이션 목록
                    "anims": "$rainbowpie_localui_background_animations",
                    // ????? ?? ?
                    "animation_reset_name": "screen_animation_reset",
                    // ??? ?? ?
                    "propagate_alpha": true,
                    // ????? ?? ?
                    "disable_anim_fast_forward": true,
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": -1,
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // ???/?? ??
                        "gradient_top": {
                          // 특수 렌더러(그라디언트/플레이어 등)
                          "type": "custom",
                          // 커스텀 렌더러 종류
                          "renderer": "gradient_renderer",
                          // 완전히 제거(공간도 없음)
                          "ignored": "(not $rainbowpie_ui_flag_ingamebackground_gradient)",
                          // 가로/세로 크기
                          "size": [ "100%", 30 ],
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "top_middle",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "top_middle",
                          // ?? ?? ?
                          "color1": [ 0.0, 0.0, 0.0, 0.5 ],
                          // ?? ?? ?
                          "color2": [ 0.0, 0.0, 0.0, 0.0 ],
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 2
                        }
                      },
                      {
                        // ???/?? ??
                        "design02_gradient_bottom": {
                          // 특수 렌더러(그라디언트/플레이어 등)
                          "type": "custom",
                          // 커스텀 렌더러 종류
                          "renderer": "gradient_renderer",
                          // 완전히 제거(공간도 없음)
                          "ignored": "(not $rainbowpie_ui_flag_ingamebackground_gradient)",
                          // 가로/세로 크기
                          "size": [ "100%", 30 ],
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "bottom_middle",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "bottom_middle",
                          // ?? ?? ?
                          "color1": [ 0.0, 0.0, 0.0, 0.0 ],
                          // ?? ?? ?
                          "color2": [ 0.0, 0.0, 0.0, 0.5 ],
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 2
                        }
                      },
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "background@rainbowpie_ui_common.global_background": {
                          // 가로/세로 크기
                          "size": [ "100%", "100%" ]
                        }
                      }
                    ]
                  }
                },
                {
                  // ???/?? ??
                  "inventory_background_panel": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 완전히 제거(공간도 없음)
                    "ignored": "(not $rainbowpie_localui_inventory_screen or $is_pregame)",
                    // 애니메이션 목록
                    "anims": "$rainbowpie_localui_background_animations",
                    // ????? ?? ?
                    "animation_reset_name": "screen_animation_reset",
                    // ??? ?? ?
                    "propagate_alpha": true,
                    // ????? ?? ?
                    "disable_anim_fast_forward": true,
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": -1,
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                      {
                        // ???/?? ??
                        "gradient_top": {
                          // 특수 렌더러(그라디언트/플레이어 등)
                          "type": "custom",
                          // 커스텀 렌더러 종류
                          "renderer": "gradient_renderer",
                          // 완전히 제거(공간도 없음)
                          "ignored": "(not $rainbowpie_ui_flag_inventorybackground_gradient)",
                          // 가로/세로 크기
                          "size": [ "100%", 30 ],
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "top_middle",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "top_middle",
                          // ?? ?? ?
                          "color1": [ 0.0, 0.0, 0.0, 0.5 ],
                          // ?? ?? ?
                          "color2": [ 0.0, 0.0, 0.0, 0.0 ],
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 2
                        }
                      },
                      {
                        // ???/?? ??
                        "design02_gradient_bottom": {
                          // 특수 렌더러(그라디언트/플레이어 등)
                          "type": "custom",
                          // 커스텀 렌더러 종류
                          "renderer": "gradient_renderer",
                          // 완전히 제거(공간도 없음)
                          "ignored": "(not $rainbowpie_ui_flag_inventorybackground_gradient)",
                          // 가로/세로 크기
                          "size": [ "100%", 30 ],
                          // 기준점(어디에서 시작할지)
                          "anchor_from": "bottom_middle",
                          // 붙일 위치(어디에 놓을지)
                          "anchor_to": "bottom_middle",
                          // ?? ?? ?
                          "color1": [ 0.0, 0.0, 0.0, 0.0 ],
                          // ?? ?? ?
                          "color2": [ 0.0, 0.0, 0.0, 0.5 ],
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 2
                        }
                      },
                      {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "inventory_background@rainbowpie_ui_common.inventory_global_background": {
                          // 가로/세로 크기
                          "size": [ "100%", "100%" ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      },
      {
        // ?? ?? ??
        "array_name": "variables",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_debug_ui_device_override = 'windows')",
            // Windows variables
            "$microsoft_os": true,
            // 오버라이드 가능한 변수
            "$build_platform_UWP": true,
            // 오버라이드 가능한 변수
            "$win10_edition": true,
            // 오버라이드 가능한 변수
            "$is_windows_10_mobile": false,
            // 오버라이드 가능한 변수
            "$is_win10_arm": false,
            // Android variables
            "$google_os": false,
            // 오버라이드 가능한 변수
            "$is_android": false,
            // Apple variables
            "$apple_os": false,
            // 오버라이드 가능한 변수
            "$ios": false,
            // 오버라이드 가능한 변수
            "$is_ios": false,
            // 오버라이드 가능한 변수
            "$osx_edition": false,
            // 오버라이드 가능한 변수
            "$apple_tv": false,
            // Console variables
            "$is_console": false,
            // 오버라이드 가능한 변수
            "$xbox_one": false,
            // 오버라이드 가능한 변수
            "$is_ps4": false,
            // Other idk variables
            "$nx_os": false,
            // 오버라이드 가능한 변수
            "$is_settopbox": false,
            // 오버라이드 가능한 변수
            "$fire_tv": false,
            // 오버라이드 가능한 변수
            "$is_mobile_vr": false,
            // 오버라이드 가능한 변수
            "$gear_vr": false,
            // 오버라이드 가능한 변수
            "$is_holographic": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_debug_ui_device_override = 'windows_arm')",
            // Windows variables
            "$microsoft_os": true,
            // 오버라이드 가능한 변수
            "$build_platform_UWP": true,
            // 오버라이드 가능한 변수
            "$win10_edition": true,
            // 오버라이드 가능한 변수
            "$is_windows_10_mobile": false,
            // 오버라이드 가능한 변수
            "$is_win10_arm": true,
            // Android variables
            "$google_os": false,
            // 오버라이드 가능한 변수
            "$is_android": false,
            // Apple variables
            "$apple_os": false,
            // 오버라이드 가능한 변수
            "$ios": false,
            // 오버라이드 가능한 변수
            "$is_ios": false,
            // 오버라이드 가능한 변수
            "$osx_edition": false,
            // 오버라이드 가능한 변수
            "$apple_tv": false,
            // Console variables
            "$is_console": false,
            // 오버라이드 가능한 변수
            "$xbox_one": false,
            // 오버라이드 가능한 변수
            "$is_ps4": false,
            // Other idk variables
            "$nx_os": false,
            // 오버라이드 가능한 변수
            "$is_settopbox": false,
            // 오버라이드 가능한 변수
            "$fire_tv": false,
            // 오버라이드 가능한 변수
            "$is_mobile_vr": false,
            // 오버라이드 가능한 변수
            "$gear_vr": false,
            // 오버라이드 가능한 변수
            "$is_holographic": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_debug_ui_device_override = 'windows_mobile')",
            // Windows variables
            "$microsoft_os": true,
            // 오버라이드 가능한 변수
            "$build_platform_UWP": true,
            // 오버라이드 가능한 변수
            "$win10_edition": true,
            // 오버라이드 가능한 변수
            "$is_windows_10_mobile": true,
            // 오버라이드 가능한 변수
            "$is_win10_arm": false,
            // Android variables
            "$google_os": false,
            // 오버라이드 가능한 변수
            "$is_android": false,
            // Apple variables
            "$apple_os": false,
            // 오버라이드 가능한 변수
            "$ios": false,
            // 오버라이드 가능한 변수
            "$is_ios": false,
            // 오버라이드 가능한 변수
            "$osx_edition": false,
            // 오버라이드 가능한 변수
            "$apple_tv": false,
            // Console variables
            "$is_console": false,
            // 오버라이드 가능한 변수
            "$xbox_one": false,
            // 오버라이드 가능한 변수
            "$is_ps4": false,
            // Other idk variables
            "$nx_os": false,
            // 오버라이드 가능한 변수
            "$is_settopbox": false,
            // 오버라이드 가능한 변수
            "$fire_tv": false,
            // 오버라이드 가능한 변수
            "$is_mobile_vr": false,
            // 오버라이드 가능한 변수
            "$gear_vr": false,
            // 오버라이드 가능한 변수
            "$is_holographic": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_debug_ui_device_override = 'android')",
            // Windows variables
            "$microsoft_os": false,
            // 오버라이드 가능한 변수
            "$build_platform_UWP": false,
            // 오버라이드 가능한 변수
            "$win10_edition": false,
            // 오버라이드 가능한 변수
            "$is_windows_10_mobile": false,
            // 오버라이드 가능한 변수
            "$is_win10_arm": false,
            // Android variables
            "$google_os": true,
            // 오버라이드 가능한 변수
            "$is_android": true,
            // Apple variables
            "$apple_os": false,
            // 오버라이드 가능한 변수
            "$ios": false,
            // 오버라이드 가능한 변수
            "$is_ios": false,
            // 오버라이드 가능한 변수
            "$osx_edition": false,
            // 오버라이드 가능한 변수
            "$apple_tv": false,
            // Console variables
            "$is_console": false,
            // 오버라이드 가능한 변수
            "$xbox_one": false,
            // 오버라이드 가능한 변수
            "$is_ps4": false,
            // Other idk variables
            "$nx_os": false,
            // 오버라이드 가능한 변수
            "$is_settopbox": false,
            // 오버라이드 가능한 변수
            "$fire_tv": false,
            // 오버라이드 가능한 변수
            "$is_mobile_vr": false,
            // 오버라이드 가능한 변수
            "$gear_vr": false,
            // 오버라이드 가능한 변수
            "$is_holographic": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_debug_ui_device_override = 'apple_ios')",
            // Windows variables
            "$microsoft_os": false,
            // 오버라이드 가능한 변수
            "$build_platform_UWP": false,
            // 오버라이드 가능한 변수
            "$win10_edition": false,
            // 오버라이드 가능한 변수
            "$is_windows_10_mobile": false,
            // 오버라이드 가능한 변수
            "$is_win10_arm": false,
            // Android variables
            "$google_os": false,
            // 오버라이드 가능한 변수
            "$is_android": false,
            // Apple variables
            "$apple_os": true,
            // 오버라이드 가능한 변수
            "$ios": true,
            // 오버라이드 가능한 변수
            "$is_ios": true,
            // 오버라이드 가능한 변수
            "$osx_edition": false,
            // 오버라이드 가능한 변수
            "$apple_tv": false,
            // Console variables
            "$is_console": false,
            // 오버라이드 가능한 변수
            "$xbox_one": false,
            // 오버라이드 가능한 변수
            "$is_ps4": false,
            // Other idk variables
            "$nx_os": false,
            // 오버라이드 가능한 변수
            "$is_settopbox": false,
            // 오버라이드 가능한 변수
            "$fire_tv": false,
            // 오버라이드 가능한 변수
            "$is_mobile_vr": false,
            // 오버라이드 가능한 변수
            "$gear_vr": false,
            // 오버라이드 가능한 변수
            "$is_holographic": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_debug_ui_device_override = 'apple_osx')",
            // Windows variables
            "$microsoft_os": false,
            // 오버라이드 가능한 변수
            "$build_platform_UWP": false,
            // 오버라이드 가능한 변수
            "$win10_edition": false,
            // 오버라이드 가능한 변수
            "$is_windows_10_mobile": false,
            // 오버라이드 가능한 변수
            "$is_win10_arm": false,
            // Android variables
            "$google_os": false,
            // 오버라이드 가능한 변수
            "$is_android": false,
            // Apple variables
            "$apple_os": true,
            // 오버라이드 가능한 변수
            "$ios": false,
            // 오버라이드 가능한 변수
            "$is_ios": false,
            // 오버라이드 가능한 변수
            "$osx_edition": true,
            // 오버라이드 가능한 변수
            "$apple_tv": false,
            // Console variables
            "$is_console": false,
            // 오버라이드 가능한 변수
            "$xbox_one": false,
            // 오버라이드 가능한 변수
            "$is_ps4": false,
            // Other idk variables
            "$nx_os": false,
            // 오버라이드 가능한 변수
            "$is_settopbox": false,
            // 오버라이드 가능한 변수
            "$fire_tv": false,
            // 오버라이드 가능한 변수
            "$is_mobile_vr": false,
            // 오버라이드 가능한 변수
            "$gear_vr": false,
            // 오버라이드 가능한 변수
            "$is_holographic": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_debug_ui_device_override = 'apple_tv')",
            // Windows variables
            "$microsoft_os": false,
            // 오버라이드 가능한 변수
            "$build_platform_UWP": false,
            // 오버라이드 가능한 변수
            "$win10_edition": false,
            // 오버라이드 가능한 변수
            "$is_windows_10_mobile": false,
            // 오버라이드 가능한 변수
            "$is_win10_arm": false,
            // Android variables
            "$google_os": false,
            // 오버라이드 가능한 변수
            "$is_android": false,
            // Apple variables
            "$apple_os": true,
            // 오버라이드 가능한 변수
            "$ios": false,
            // 오버라이드 가능한 변수
            "$is_ios": false,
            // 오버라이드 가능한 변수
            "$osx_edition": false,
            // 오버라이드 가능한 변수
            "$apple_tv": true,
            // Console variables
            "$is_console": false,
            // 오버라이드 가능한 변수
            "$xbox_one": false,
            // 오버라이드 가능한 변수
            "$is_ps4": false,
            // Other idk variables
            "$nx_os": false,
            // 오버라이드 가능한 변수
            "$is_settopbox": false,
            // 오버라이드 가능한 변수
            "$fire_tv": false,
            // 오버라이드 가능한 변수
            "$is_mobile_vr": false,
            // 오버라이드 가능한 변수
            "$gear_vr": false,
            // 오버라이드 가능한 변수
            "$is_holographic": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_debug_ui_device_override = 'console')",
            // Windows variables
            "$microsoft_os": false,
            // 오버라이드 가능한 변수
            "$build_platform_UWP": false,
            // 오버라이드 가능한 변수
            "$win10_edition": false,
            // 오버라이드 가능한 변수
            "$is_windows_10_mobile": false,
            // 오버라이드 가능한 변수
            "$is_win10_arm": false,
            // Android variables
            "$google_os": false,
            // 오버라이드 가능한 변수
            "$is_android": false,
            // Apple variables
            "$apple_os": false,
            // 오버라이드 가능한 변수
            "$ios": false,
            // 오버라이드 가능한 변수
            "$is_ios": false,
            // 오버라이드 가능한 변수
            "$osx_edition": false,
            // 오버라이드 가능한 변수
            "$apple_tv": false,
            // Console variables
            "$is_console": true,
            // 오버라이드 가능한 변수
            "$xbox_one": false,
            // 오버라이드 가능한 변수
            "$is_ps4": false,
            // Other idk variables
            "$nx_os": false,
            // 오버라이드 가능한 변수
            "$is_settopbox": false,
            // 오버라이드 가능한 변수
            "$fire_tv": false,
            // 오버라이드 가능한 변수
            "$is_mobile_vr": false,
            // 오버라이드 가능한 변수
            "$gear_vr": false,
            // 오버라이드 가능한 변수
            "$is_holographic": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_debug_ui_device_override = 'console_xboxone')",
            // Windows variables
            "$microsoft_os": true,
            // 오버라이드 가능한 변수
            "$build_platform_UWP": false,
            // 오버라이드 가능한 변수
            "$win10_edition": true,
            // 오버라이드 가능한 변수
            "$is_windows_10_mobile": false,
            // 오버라이드 가능한 변수
            "$is_win10_arm": false,
            // Android variables
            "$google_os": false,
            // 오버라이드 가능한 변수
            "$is_android": false,
            // Apple variables
            "$apple_os": false,
            // 오버라이드 가능한 변수
            "$ios": false,
            // 오버라이드 가능한 변수
            "$is_ios": false,
            // 오버라이드 가능한 변수
            "$osx_edition": false,
            // 오버라이드 가능한 변수
            "$apple_tv": false,
            // Console variables
            "$is_console": true,
            // 오버라이드 가능한 변수
            "$xbox_one": true,
            // 오버라이드 가능한 변수
            "$is_ps4": false,
            // Other idk variables
            "$nx_os": false,
            // 오버라이드 가능한 변수
            "$is_settopbox": false,
            // 오버라이드 가능한 변수
            "$fire_tv": false,
            // 오버라이드 가능한 변수
            "$is_mobile_vr": false,
            // 오버라이드 가능한 변수
            "$gear_vr": false,
            // 오버라이드 가능한 변수
            "$is_holographic": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_debug_ui_device_override = 'console_ps4')",
            // Windows variables
            "$microsoft_os": false,
            // 오버라이드 가능한 변수
            "$build_platform_UWP": false,
            // 오버라이드 가능한 변수
            "$win10_edition": false,
            // 오버라이드 가능한 변수
            "$is_windows_10_mobile": false,
            // 오버라이드 가능한 변수
            "$is_win10_arm": false,
            // Android variables
            "$google_os": false,
            // 오버라이드 가능한 변수
            "$is_android": false,
            // Apple variables
            "$apple_os": false,
            // 오버라이드 가능한 변수
            "$ios": false,
            // 오버라이드 가능한 변수
            "$is_ios": false,
            // 오버라이드 가능한 변수
            "$osx_edition": false,
            // 오버라이드 가능한 변수
            "$apple_tv": false,
            // Console variables
            "$is_console": true,
            // 오버라이드 가능한 변수
            "$xbox_one": false,
            // 오버라이드 가능한 변수
            "$is_ps4": true,
            // Other idk variables
            "$nx_os": false,
            // 오버라이드 가능한 변수
            "$is_settopbox": false,
            // 오버라이드 가능한 변수
            "$fire_tv": false,
            // 오버라이드 가능한 변수
            "$is_mobile_vr": false,
            // 오버라이드 가능한 변수
            "$gear_vr": false,
            // 오버라이드 가능한 변수
            "$is_holographic": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_debug_ui_input_override = 'touch')",
            // 오버라이드 가능한 변수
            "$touch": true,
            // 오버라이드 가능한 변수
            "$mouse": false,
            // 오버라이드 가능한 변수
            "$game_pad": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_debug_ui_input_override = 'mouse')",
            // 오버라이드 가능한 변수
            "$touch": false,
            // 오버라이드 가능한 변수
            "$mouse": true,
            // 오버라이드 가능한 변수
            "$game_pad": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_debug_ui_input_override = 'game_pad')",
            // 오버라이드 가능한 변수
            "$touch": false,
            // 오버라이드 가능한 변수
            "$mouse": false,
            // 오버라이드 가능한 변수
            "$game_pad": true
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_debug_ui_debug",
            // 오버라이드 가능한 변수
            "$debug_settings": true,
            // 오버라이드 가능한 변수
            "$is_publish": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_debug_ui_var_override",
            // 오버라이드 가능한 변수
            "$file_picking_supported": "$rainbowpie_ui_debug_ui_var_override_file_picking_supported",
            // 오버라이드 가능한 변수
            "$world_archive_support": "$rainbowpie_ui_debug_ui_var_override_world_archive_support",
            // 오버라이드 가능한 변수
            "$is_low_memory_device": "$rainbowpie_ui_debug_ui_var_override_is_low_memory_device",
            // 오버라이드 가능한 변수
            "$pre_release": "$rainbowpie_ui_debug_ui_var_override_pre_release",
            // 오버라이드 가능한 변수
            "$trial": "$rainbowpie_ui_debug_ui_var_override_trial",
            // 오버라이드 가능한 변수
            "$is_publish": "$rainbowpie_ui_debug_ui_var_override_is_publish",
            // 오버라이드 가능한 변수
            "$education_edition": "$rainbowpie_ui_debug_ui_var_override_education_edition"
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_flag_disable_spatial_pattern_fix",
            // 오버라이드 가능한 변수
            "$settings_spatial_pattern_fix_enabled": false
          },
          // 对部分不同的场景优化
          {
            // 이 조건이 맞으면 적용
            "requires": "$is_low_memory_device",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_feature_background_mask": false,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_feature_background_blur": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "(($is_android or $is_ios) and $rainbowpie_ui_flag_86c54726)",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_86c54726": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "(($rainbowpie_localui_screen_alias = 'server_form') and $game_pad)",
            // 오버라이드 가능한 변수
            "$rainbowpie_localui_backup_screen": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "$touch",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_5e1f3f4e": false
          },
          // Force use Rainbow Pie UI style server_form
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_flag_server_form_force and ($rainbowpie_localui_screen_alias = 'server_form'))",
            // 오버라이드 가능한 변수
            "$screen_content": "rainbowpieui_server_form.main_screen_content",
            // 오버라이드 가능한 변수
            "$screen_animations": [
              "@common.screen_exit_animation_push_offset",
              "@common.screen_exit_animation_pop_offset",
              "@common.screen_entrance_animation_push_offset",
              "@common.screen_entrance_animation_pop_offset",
              "@common.screen_exit_animation_push_fade",
              "@common.screen_exit_animation_pop_fade",
              "@common.screen_entrance_animation_push_fade",
              "@common.screen_entrance_animation_pop_fade"
            ],
            // 오버라이드 가능한 변수
            "$background_animations": [
              "@common.screen_exit_animation_push_alpha",
              "@common.screen_exit_animation_pop_alpha",
              "@common.screen_entrance_animation_push_alpha",
              "@common.screen_entrance_animation_pop_alpha"
            ]
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "$rainbowpie_ui_debug_ui_new_video_settings",
            // 오버라이드 가능한 변수
            "$new_video_settings": true
          },
          // settings ui
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_localui_screen_alias = 'settings')",
            // 오버라이드 가능한 변수
            "$export_template_disabled": false
          },
          // Force disable rainbowpie_ui_flag_hud_hotbar_mode 2
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_flag_hud_hotbar_mode = 2)",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_hud_hotbar_mode": 1
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_flag_hud_hotbar_mode > 3)",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_hud_hotbar_mode": 0
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "(($rainbowpie_localui_screen_alias = 'hud') and (not ($screen_content = 'hud.hud_content')))",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_hud_hotbar_mode": 0,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_6d2ac350": false,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_0ffd0593": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_flag_111d8c96 and not $mouse)",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_111d8c96": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "(not $rainbowpie_ui_flag_8dcce82d)",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_8dcce82d": true
          },
          // Zeqa Network
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_flag_server_identifier = '78239b75_zeqa')",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_identifier": "78239b75_zeqa",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_displayname": "Zeqa Network",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_notification_features_disabled": true,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_notification_features_disabled_reason": "server",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_enabled": true,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_logo_name": "zeqa",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_server_name": "Zeqa Network",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_link_website": "http://store.zeqa.net",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_description": "©Zeqa Network",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_custom_server_icon": true,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_custom_server_icon_name": "zeqa",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_56cd0456": true, // PauseUI Back To Vanilla Button
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_scoreboard_default_font": true,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_hudbossname_default_font": true,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_moduleflag_inventory_actions_drop_all_item_enabled": false,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_module_chest_fastpick": false,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_chatui_default_font": true,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_hudtitle_default_font": true,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_19efcc11": false,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_9ce040c1": false
          },
          // CubeCraft
          {
           // 이 조건이 맞으면 적용
           "requires": "($rainbowpie_ui_flag_server_identifier = 'd29f22ac_cubecraft')",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_identifier": "d29f22ac_cubecraft",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_displayname": "CubeCraft Games",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_notification_features_disabled": true,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_notification_features_disabled_reason": "server",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_enabled": true,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_logo_name": "cubecraft",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_server_name": "CubeCraft",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_link_website": "https://cubecraft.net",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_link_support": "https://help.cubecraft.net",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_description": "© ZIAX LTD 2025",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_custom_server_icon": true,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_custom_server_icon_name": "cubecraft",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_scoreboard_default_font": true,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_module_chest_fastpick": false,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_moduleflag_inventory_actions_drop_all_item_enabled": false,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_19efcc11": false,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_9ce040c1": false
          },
          // The Hive
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_flag_server_identifier = '290b8fe4_hivebedrock')",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_identifier": "290b8fe4_hivebedrock",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_displayname": "The Hive",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_notification_features_disabled": true,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_notification_features_disabled_reason": "server",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_enabled": true,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_logo_name": "hivebedrock",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_server_name": "The Hive",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_link_website": "https://playhive.com",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_link_support": "https://support.playhive.com",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_server_infomation_description": "Hive Games © 2025",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_custom_server_icon": true,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_custom_server_icon_name": "hivebedrock",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_module_chest_fastpick": false,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_19efcc11": false,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_9ce040c1": false
          },
          // Better Bedrock UI
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_flag_resourcepack_identifier = 'd5e1b7c2_betterbedrock')",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_resourcepack_identifier": "d5e1b7c2_betterbedrock",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_resourcepack_displayname": "Better Bedrock UI",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_notification_features_disabled": true,
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_notification_features_disabled_reason": "resourcepack"
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "(($rainbowpie_ui_flag_resourcepack_identifier = 'd5e1b7c2_betterbedrock') and $rainbowpie_ui_compatibility_var_override_d5e1b7c2)",
            // 오버라이드 가능한 변수
            "$cps_counter_x_offset": 0,
            // 오버라이드 가능한 변수
            "$cps_counter_y_offset": 6,
            // 오버라이드 가능한 변수
            "$day_time_viewer_x_offset": 0,
            // 오버라이드 가능한 변수
            "$day_time_viewer_y_offset": 2,
            // 오버라이드 가능한 변수
            "$speed_counter_x_offset": 0,
            // 오버라이드 가능한 변수
            "$speed_counter_y_offset": 4,
            // 오버라이드 가능한 변수
            "$tab_list": false,
            // 오버라이드 가능한 변수
            "$durability_viewer": false,
            // 오버라이드 가능한 변수
            "$crosshair_item_count": false,
            // 오버라이드 가능한 변수
            "$session_timer_x_offset": 0,
            // 오버라이드 가능한 변수
            "$session_timer_y_offset": 0,
            // 오버라이드 가능한 변수
            "$chat": false,
            // 오버라이드 가능한 변수
            "$coords": false,
            // 오버라이드 가능한 변수
            "$nether_coords_x_offset": 0,
            // 오버라이드 가능한 변수
            "$nether_coords_y_offset": 4,
            // 오버라이드 가능한 변수
            "$days_played": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "(($rainbowpie_ui_flag_resourcepack_identifier = 'd5e1b7c2_betterbedrock') and (not ($rainbowpie_ui_flag_hud_hotbar_mode = 0)))",
            // 오버라이드 가능한 변수
            "$editor_hotbars_show_default_layout": false,
            // 오버라이드 가능한 변수
            "$editor_hotbar_elements_icons_and_factories_vertical_padding_size": 14,
            // 오버라이드 가능한 변수
            "$editor_hotbar_elements_xp_bar_show_element": false
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "(($rainbowpie_ui_flag_resourcepack_identifier = 'd5e1b7c2_betterbedrock') and ($screen_content = 'hud.hud_content'))",
            // 오버라이드 가능한 변수
            "$use_loading_bars": false,
            // 오버라이드 가능한 변수
            "$rainbowpie_localui_screen_watermark": false,
            // 오버라이드 가능한 변수
            "$rainbowpie_localui_modified": false,
            // 오버라이드 가능한 변수
            "$rainbowpie_localui_screen_alias": "hud",
            // 오버라이드 가능한 변수
            "$rainbowpie_localui_screen_alias_formatted": "hud,"
          },
          {
            // 이 조건이 맞으면 적용
            "requires": "(($rainbowpie_ui_flag_resourcepack_identifier = 'd5e1b7c2_betterbedrock') and ($screen_content = 'bb_pause.main'))",
            // 오버라이드 가능한 변수
            "$rainbowpie_localui_modified": false,
            // 오버라이드 가능한 변수
            "$rainbowpie_localui_screen_alias": "pause",
            // 오버라이드 가능한 변수
            "$rainbowpie_localui_screenbackground_ingamebg_ignored": true
          },
          // Dabu UI
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_flag_resourcepack_identifier = 'c740985b_dabuui')",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_resourcepack_identifier": "c740985b_dabuui",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_resourcepack_displayname": "护眼大补丸"
          },
          // China Version
          {
            // 이 조건이 맞으면 적용
            "requires": "($rainbowpie_ui_flag_resourcepack_identifier = '5c1c3f14_netease')",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_resourcepack_identifier": "5c1c3f14_netease",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_flag_resourcepack_displayname": "Netease",
            // 오버라이드 가능한 변수
            "$rainbowpie_ui_theme_global_font_name": "unicode"
          }
        ]
      }
    ]
  }
}

ui_template_tabs.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: ui_template_tabs.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "common_tabs",

  // ???/?? ??
  "base_tab": {
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_text_unchecked_default_color|default": "$rainbowpie_ui_theme_toggle_text_default_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_text_unchecked_hover_color|default": "$rainbowpie_ui_theme_toggle_text_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_text_unchecked_locked_color|default": "$rainbowpie_ui_theme_toggle_text_locked_checked_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_text_checked_default_color|default": "$rainbowpie_ui_theme_toggle_text_checked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_text_checked_hover_color|default": "$rainbowpie_ui_theme_toggle_text_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_text_checked_locked_color|default": "$rainbowpie_ui_theme_toggle_text_locked_checked_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_color|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_locked_color|default": "$rainbowpie_ui_theme_toggle_background_locked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_color|default": "$rainbowpie_ui_theme_toggle_background_checked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_color|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_locked_color|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_color",

    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_default_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_hover_alpha|default": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_unchecked_locked_alpha|default": "$rainbowpie_ui_theme_toggle_background_locked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_default_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_hover_alpha|default": "$rainbowpie_ui_theme_toggle_background_checked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_checked_locked_alpha|default": "$rainbowpie_ui_theme_toggle_background_locked_checked_alpha"
  },

  // ???/?? ??
  "base_tab/$tab_view_binding_name/unchecked": {
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_color": "$rainbowpie_toggle_unchecked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_alpha": "$rainbowpie_toggle_unchecked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_color": "$rainbowpie_toggle_text_unchecked_default_color"
  },

  // ???/?? ??
  "base_tab/$tab_view_binding_name/unchecked_hover": {
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_color": "$rainbowpie_toggle_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_alpha": "$rainbowpie_toggle_unchecked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_color": "$rainbowpie_toggle_text_unchecked_hover_color",
    // 오버라이드 가능한 변수
    "$hover_state": true
  },

  // ???/?? ??
  "base_tab/$tab_view_binding_name/unchecked_locked": {
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_color": "$rainbowpie_toggle_unchecked_locked_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_alpha": "$rainbowpie_toggle_unchecked_locked_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_color": "$rainbowpie_toggle_text_unchecked_locked_color"
  },

  // ???/?? ??
  "base_tab/$tab_view_binding_name/unchecked_locked_hover": {
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_color": "$rainbowpie_toggle_unchecked_locked_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_alpha": "$rainbowpie_toggle_unchecked_locked_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_color": "$rainbowpie_toggle_text_unchecked_locked_color",
    // 오버라이드 가능한 변수
    "$hover_state": true
  },

  // ???/?? ??
  "base_tab/$tab_view_binding_name/checked": {
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_color": "$rainbowpie_toggle_checked_default_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_alpha": "$rainbowpie_toggle_checked_default_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_color": "$rainbowpie_toggle_text_checked_default_color"
  },

  // ???/?? ??
  "base_tab/$tab_view_binding_name/checked_hover": {
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_color": "$rainbowpie_toggle_checked_hover_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_alpha": "$rainbowpie_toggle_checked_hover_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_color": "$rainbowpie_toggle_text_checked_hover_color",
    // 오버라이드 가능한 변수
    "$hover_state": true
  },

  // ???/?? ??
  "base_tab/$tab_view_binding_name/checked_locked": {
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_color": "$rainbowpie_toggle_checked_locked_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_alpha": "$rainbowpie_toggle_checked_locked_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_color": "$rainbowpie_toggle_text_checked_locked_color"
  },

  // ???/?? ??
  "base_tab/$tab_view_binding_name/checked_locked_hover": {
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_color": "$rainbowpie_toggle_checked_locked_color",
    // 오버라이드 가능한 변수
    "$rainbowpie_toggle_alpha": "$rainbowpie_toggle_checked_locked_alpha",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_color": "$rainbowpie_toggle_text_checked_locked_color",
    // 오버라이드 가능한 변수
    "$hover_state": true
  }
}

win10_trial_conversion_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: win10_trial_conversion_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "win10_trial_conversion"
}

world_templates_screen.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: world_templates_screen.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "world_templates",

  // ???/?? ??
  "world_templates_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "world_templates",
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_world_templates.world_templates_picker_content"
  },

  // ???/?? ??
  "generate_random_button": {
    // 가로/세로 크기
    "size": [ "100%", "100%c" ]
  },

  // ???/?? ??
  "world_template_screen_content_stack_panel/generate_random_button_bottom_padding": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "world_list_grids_stack/template_list_panel/template_bottom_padding": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "world_list_grids_stack/store_panel/store_grids/realms_plus_list_panel/realms_plus_template_bottom_padding": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "world_list_grids_stack/store_panel/store_grids/suggested_content_panel/suggested_template_bottom_padding": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "world_list_grids_stack/custom_template_panel/custom_template_list_bottom_padding": {
    // "ignored": true
  },

  // ???/?? ??
  "world_list_grids_stack/realms_info_panel/padding": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "world_list_grids_stack/store_panel/store_grids/suggested_content_panel/suggested_content_offers_title_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "world_list_grids_stack/store_panel/store_grids/suggested_content_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "suggested_content_offers_title_label",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "suggested_content_offers_title@rainbowpieui_world_templates.list_title": {
              // 오버라이드 가능한 변수
              "$rainbowpie_localui_list_title_text": "$section_header",
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 가져올 값 이름
                  "binding_name": "(not #realms_info_visible)",
                  // 가져온 값을 다른 속성으로 연결
                  "binding_name_override": "#visible"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "label_content_template": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "list_title@rainbowpieui_world_templates.list_title": {
          // 오버라이드 가능한 변수
          "$rainbowpie_localui_list_title_text": "$label_content_label"
        }
      }
    ]
  },

  // ???/?? ??
  "world_list_grids_stack/store_panel/store_grids/realms_plus_list_panel/realms_plus_label_panel": {

  },

  // ???/?? ??
  "realms_plus_template_item/realms_plus_template_item_button": {
    // 가로/세로 크기
    "size": [ "fill", "100%" ]
  },

  // ???/?? ??
  "world_template_item/world_template_item_button": {
    // 가로/세로 크기
    "size": [ "fill", "100%" ]
  },

  // ???/?? ??
  "see_more_templates_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "world_template_item_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "realms_plus_template_item_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "help_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "generate_random": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  }
}

xbl_friend_finder.json 기본 UI 모음 2 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: xbl_friend_finder.json
// 분류: 기본 UI 모음 2 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "xbl_friend_finder",

  // ???/?? ??
  "progress_loading/progress_loading_outline": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "message_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "main_panel/searching_profile_panel": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha"
  },

  // ???/?? ??
  "text_edit_panel/text_edit_box": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_editbox_enabled": true
  },

  // ???/?? ??
  "main_panel/find_friends_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "xbl_friend_finder": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screenbackground_blur": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "xbl_friend_finder",
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_xbl_friend_finder.xbl_friend_finder_screen_content"
  }
}

MintUI

mintui_background.json 기본 UI 모음 2 · MintUI

필요한 부분만 참고해서 가져가세요.

// 예제: mintui_background.json
// 분류: 기본 UI 모음 2 / MintUI
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "mintui_background",

  // ???/?? ??
  "background_fullscreen": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$background_mask|default": false,
    // 완전히 제거(공간도 없음)
    "ignored": "(not $is_pregame)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "image_background_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "gradient_top": {
                // 특수 렌더러(그라디언트/플레이어 등)
                "type": "custom",
                // 커스텀 렌더러 종류
                "renderer": "gradient_renderer",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_flag_screenbackground_gradient)",
                // 가로/세로 크기
                "size": [ "100%", 30 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // ?? ?? ?
                "color1": [ 0.0, 0.0, 0.0, 0.5 ],
                // ?? ?? ?
                "color2": [ 0.0, 0.0, 0.0, 0.0 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2
              }
            },
            {
              // ???/?? ??
              "design02_gradient_bottom": {
                // 특수 렌더러(그라디언트/플레이어 등)
                "type": "custom",
                // 커스텀 렌더러 종류
                "renderer": "gradient_renderer",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_flag_screenbackground_gradient)",
                // 가로/세로 크기
                "size": [ "100%", 30 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // ?? ?? ?
                "color1": [ 0.0, 0.0, 0.0, 0.0 ],
                // ?? ?? ?
                "color2": [ 0.0, 0.0, 0.0, 0.5 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2
              }
            },
            {
              // ???/?? ??
              "image_background": {
                // 이미지 표시
                "type": "image",
                // ?? ??
                "fill": true,
                // ??? ?? ?
                "allow_debug_missing_texture": false,
                // ??? ?? ?
                "force_texture_reload": true,
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 사용할 이미지 경로
                "texture": "$rainbowpie_ui_theme_background_texture",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "image_mask": {
          // 이미지 표시
          "type": "image",
          // 보이기/숨기기(공간 유지)
          "visible": "($background_mask and $rainbowpie_ui_flag_bg_mask)",
          // ?? ??
          "fill": true,
          // ??? ?? ?
          "allow_debug_missing_texture": false,
          // ??? ?? ?
          "force_texture_reload": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 사용할 이미지 경로
          "texture": "$rainbowpie_ui_theme_background_mask_texture",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3
        }
      }
    ]
  },

  // ???/?? ??
  "background_blur_fullscreen": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$background_mask|default": false,
    // 완전히 제거(공간도 없음)
    "ignored": "(not $is_pregame)",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "image_background_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "gradient_top": {
                // 특수 렌더러(그라디언트/플레이어 등)
                "type": "custom",
                // 커스텀 렌더러 종류
                "renderer": "gradient_renderer",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_flag_screenbackground_gradient)",
                // 가로/세로 크기
                "size": [ "100%", 30 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_middle",
                // ?? ?? ?
                "color1": [ 0.0, 0.0, 0.0, 0.5 ],
                // ?? ?? ?
                "color2": [ 0.0, 0.0, 0.0, 0.0 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2
              }
            },
            {
              // ???/?? ??
              "design02_gradient_bottom": {
                // 특수 렌더러(그라디언트/플레이어 등)
                "type": "custom",
                // 커스텀 렌더러 종류
                "renderer": "gradient_renderer",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_flag_screenbackground_gradient)",
                // 가로/세로 크기
                "size": [ "100%", 30 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // ?? ?? ?
                "color1": [ 0.0, 0.0, 0.0, 0.0 ],
                // ?? ?? ?
                "color2": [ 0.0, 0.0, 0.0, 0.5 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2
              }
            },
            {
              // ???/?? ??
              "image_background": {
                // 이미지 표시
                "type": "image",
                // ?? ??
                "fill": true,
                // ??? ?? ?
                "allow_debug_missing_texture": false,
                // ??? ?? ?
                "force_texture_reload": true,
                // 가로/세로 크기
                "size": [ "100%", "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 0 ],
                // 사용할 이미지 경로
                "texture": "$rainbowpie_ui_theme_background_blur_texture",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "image_noise": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_a3a3e4ee)",
          // 이미지 표시
          "type": "image",
          // 이미지 반복 여부
          "tiled": true,
          // ?? ??
          "tiled_scale": [ 0.10, 0.10 ],
          // ??? ?? ?
          "allow_debug_missing_texture": false,
          // ??? ?? ?
          "force_texture_reload": true,
          // ???
          "alpha": 0.025,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 사용할 이미지 경로
          "texture": "$rainbowpie_ui_theme_background_noise_texture",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3
        }
      },
      {
        // ???/?? ??
        "image_mask": {
          // 이미지 표시
          "type": "image",
          // 보이기/숨기기(공간 유지)
          "visible": "($background_mask and $rainbowpie_ui_flag_bg_mask)",
          // ?? ??
          "fill": true,
          // ??? ?? ?
          "allow_debug_missing_texture": false,
          // ??? ?? ?
          "force_texture_reload": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 사용할 이미지 경로
          "texture": "$rainbowpie_ui_theme_background_mask_texture",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
        }
      }
    ]
  },

  // ???/?? ??
  "background": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$background_mask|default": false,
    // 오버라이드 가능한 변수
    "$background_ingame|default": false,
    // 오버라이드 가능한 변수
    "$background_layer|default": 1,
    // 오버라이드 가능한 변수
    "$background_offset|default": [],
    // 오버라이드 가능한 변수
    "$background_children_offset|default": [],
    // 오버라이드 가능한 변수
    "$background_anim_reset|default": "screen_animation_reset",
    // 오버라이드 가능한 변수
    "$background_anims|default": [],
    // 오버라이드 가능한 변수
    "$background_children_anim_reset|default": "screen_animation_reset",
    // 오버라이드 가능한 변수
    "$background_children_anims|default": [],
    // 오버라이드 가능한 변수
    "$background_size|default": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$background_children_size|default": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$background_anchor|default": "center",
    // 오버라이드 가능한 변수
    "$background_children_anchor|default": "center",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "background_panel_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 완전히 제거(공간도 없음)
          "ignored": "((not $is_pregame) and (not $background_ingame))",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": "$background_offset",
          // 기준점(어디에서 시작할지)
          "anchor_from": "$background_anchor",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "$background_anchor",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 오버라이드 가능한 변수
          "$background_blur|default": "$rainbowpie_ui_theme_background_blur_texture",
          // 오버라이드 가능한 변수
          "$background_normal|default": "$rainbowpie_ui_theme_background_texture",
          // ????? ?? ?
          "animation_reset_name": "$background_anim_reset",
          // 애니메이션 목록
          "anims": "$background_anims",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "image_background_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 보이기/숨기기(공간 유지)
                "visible": "$rainbowpie_ui_feature_background_blur",
                // 가로/세로 크기
                "size": "$background_children_size",
                // 기준점에서 이동하는 거리
                "offset": "$background_children_offset",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$background_children_anchor",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$background_children_anchor",
                // 겹치는 순서(숫자 클수록 위)
                "layer": "($background_layer + 1)",
                // ????? ?? ?
                "animation_reset_name": "$background_children_anim_reset",
                // 애니메이션 목록
                "anims": "$background_children_anims",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "gradient_top": {
                      // 특수 렌더러(그라디언트/플레이어 등)
                      "type": "custom",
                      // 커스텀 렌더러 종류
                      "renderer": "gradient_renderer",
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_flag_screenbackground_gradient)",
                      // 가로/세로 크기
                      "size": [ "100%", 30 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // ?? ?? ?
                      "color1": [ 0.0, 0.0, 0.0, 0.5 ],
                      // ?? ?? ?
                      "color2": [ 0.0, 0.0, 0.0, 0.0 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2
                    }
                  },
                  {
                    // ???/?? ??
                    "design02_gradient_bottom": {
                      // 특수 렌더러(그라디언트/플레이어 등)
                      "type": "custom",
                      // 커스텀 렌더러 종류
                      "renderer": "gradient_renderer",
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_flag_screenbackground_gradient)",
                      // 가로/세로 크기
                      "size": [ "100%", 30 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // ?? ?? ?
                      "color1": [ 0.0, 0.0, 0.0, 0.0 ],
                      // ?? ?? ?
                      "color2": [ 0.0, 0.0, 0.0, 0.5 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2
                    }
                  },
                  {
                    // ???/?? ??
                    "image_background": {
                      // 이미지 표시
                      "type": "image",
                      // ?? ??
                      "fill": true,
                      // ??? ?? ?
                      "allow_debug_missing_texture": false,
                      // ??? ?? ?
                      "force_texture_reload": true,
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 사용할 이미지 경로
                      "texture": "$background_normal",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "image_mask": {
                // 이미지 표시
                "type": "image",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_feature_background_mask)",
                // 보이기/숨기기(공간 유지)
                "visible": "($background_mask and $rainbowpie_ui_flag_bg_mask)",
                // ?? ??
                "fill": true,
                // ??? ?? ?
                "allow_debug_missing_texture": false,
                // ??? ?? ?
                "force_texture_reload": true,
                // 가로/세로 크기
                "size": "$background_children_size",
                // 기준점에서 이동하는 거리
                "offset": "$background_children_offset",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$background_children_anchor",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$background_children_anchor",
                // 사용할 이미지 경로
                "texture": "$rainbowpie_ui_theme_background_mask_texture",
                // 겹치는 순서(숫자 클수록 위)
                "layer": "($background_layer + 2)",
                // ????? ?? ?
                "animation_reset_name": "$background_children_anim_reset",
                // 애니메이션 목록
                "anims": "$background_children_anims"
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "background_blur": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$background_mask|default": true,
    // 오버라이드 가능한 변수
    "$background_ingame|default": false,
    // 오버라이드 가능한 변수
    "$background_layer|default": 1,
    // 오버라이드 가능한 변수
    "$background_offset|default": [],
    // 오버라이드 가능한 변수
    "$background_children_offset|default": [],
    // 오버라이드 가능한 변수
    "$background_anim_reset|default": "screen_animation_reset",
    // 오버라이드 가능한 변수
    "$background_anims|default": [],
    // 오버라이드 가능한 변수
    "$background_children_anim_reset|default": "screen_animation_reset",
    // 오버라이드 가능한 변수
    "$background_children_anims|default": [],
    // 오버라이드 가능한 변수
    "$background_size|default": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$background_children_size|default": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$background_anchor|default": "center",
    // 오버라이드 가능한 변수
    "$background_children_anchor|default": "center",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "background_panel_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 완전히 제거(공간도 없음)
          "ignored": "((not $is_pregame) and (not $background_ingame))",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": "$background_size",
          // 기준점에서 이동하는 거리
          "offset": "$background_offset",
          // 기준점(어디에서 시작할지)
          "anchor_from": "$background_anchor",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "$background_anchor",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 오버라이드 가능한 변수
          "$background_blur|default": "$rainbowpie_ui_theme_background_blur_texture",
          // 오버라이드 가능한 변수
          "$background_normal|default": "$rainbowpie_ui_theme_background_texture",
          // ????? ?? ?
          "animation_reset_name": "$background_anim_reset",
          // 애니메이션 목록
          "anims": "$background_anims",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "image_background_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 보이기/숨기기(공간 유지)
                "visible": "$rainbowpie_ui_feature_background_blur",
                // 가로/세로 크기
                "size": "$background_children_size",
                // 기준점에서 이동하는 거리
                "offset": "$background_children_offset",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$background_children_anchor",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$background_children_anchor",
                // 겹치는 순서(숫자 클수록 위)
                "layer": "($background_layer + 1)",
                // ????? ?? ?
                "animation_reset_name": "$background_children_anim_reset",
                // 애니메이션 목록
                "anims": "$background_children_anims",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "gradient_top": {
                      // 특수 렌더러(그라디언트/플레이어 등)
                      "type": "custom",
                      // 커스텀 렌더러 종류
                      "renderer": "gradient_renderer",
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_flag_screenbackground_gradient)",
                      // 가로/세로 크기
                      "size": [ "100%", 30 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // ?? ?? ?
                      "color1": [ 0.0, 0.0, 0.0, 0.5 ],
                      // ?? ?? ?
                      "color2": [ 0.0, 0.0, 0.0, 0.0 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2
                    }
                  },
                  {
                    // ???/?? ??
                    "design02_gradient_bottom": {
                      // 특수 렌더러(그라디언트/플레이어 등)
                      "type": "custom",
                      // 커스텀 렌더러 종류
                      "renderer": "gradient_renderer",
                      // 완전히 제거(공간도 없음)
                      "ignored": "(not $rainbowpie_ui_flag_screenbackground_gradient)",
                      // 가로/세로 크기
                      "size": [ "100%", 30 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_middle",
                      // ?? ?? ?
                      "color1": [ 0.0, 0.0, 0.0, 0.0 ],
                      // ?? ?? ?
                      "color2": [ 0.0, 0.0, 0.0, 0.5 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2
                    }
                  },
                  {
                    // ???/?? ??
                    "image_background": {
                      // 이미지 표시
                      "type": "image",
                      // ?? ??
                      "fill": true,
                      // ??? ?? ?
                      "allow_debug_missing_texture": false,
                      // ??? ?? ?
                      "force_texture_reload": true,
                      // 가로/세로 크기
                      "size": [ "100%", "100%" ],
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 0 ],
                      // 사용할 이미지 경로
                      "texture": "$background_blur",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "image_mask": {
                // 이미지 표시
                "type": "image",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_feature_background_mask)",
                // 보이기/숨기기(공간 유지)
                "visible": "($background_mask and $rainbowpie_ui_flag_bg_mask)",
                // ?? ??
                "fill": true,
                // ??? ?? ?
                "allow_debug_missing_texture": false,
                // ??? ?? ?
                "force_texture_reload": true,
                // 가로/세로 크기
                "size": "$background_children_size",
                // 기준점에서 이동하는 거리
                "offset": "$background_children_offset",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$background_children_anchor",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$background_children_anchor",
                // 사용할 이미지 경로
                "texture": "$rainbowpie_ui_theme_background_mask_texture",
                // 겹치는 순서(숫자 클수록 위)
                "layer": "($background_layer + 3)",
                // ????? ?? ?
                "animation_reset_name": "$background_children_anim_reset",
                // 애니메이션 목록
                "anims": "$background_children_anims"
              }
            },
            {
              // ???/?? ??
              "image_noise": {
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_flag_a3a3e4ee)",
                // 이미지 표시
                "type": "image",
                // 이미지 반복 여부
                "tiled": true,
                // ?? ??
                "tiled_scale": [ 0.10, 0.10 ],
                // ??? ?? ?
                "allow_debug_missing_texture": false,
                // ??? ?? ?
                "force_texture_reload": true,
                // ???
                "alpha": 0.025,
                // 가로/세로 크기
                "size": "$background_children_size",
                // 기준점에서 이동하는 거리
                "offset": "$background_children_offset",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$background_children_anchor",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$background_children_anchor",
                // 사용할 이미지 경로
                "texture": "$rainbowpie_ui_theme_background_noise_texture",
                // 겹치는 순서(숫자 클수록 위)
                "layer": "($background_layer + 2)",
                // ????? ?? ?
                "animation_reset_name": "$background_children_anim_reset",
                // 애니메이션 목록
                "anims": "$background_children_anims"
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "background_mask": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$background_layer|default": 1,
    // 오버라이드 가능한 변수
    "$background_offset|default": [],
    // 오버라이드 가능한 변수
    "$background_children_offset|default": [],
    // 오버라이드 가능한 변수
    "$background_anim_reset|default": "screen_animation_reset",
    // 오버라이드 가능한 변수
    "$background_anims|default": [],
    // 오버라이드 가능한 변수
    "$background_children_anim_reset|default": "screen_animation_reset",
    // 오버라이드 가능한 변수
    "$background_children_anims|default": [],
    // 오버라이드 가능한 변수
    "$background_size|default": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$background_children_size|default": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$background_anchor|default": "center",
    // 오버라이드 가능한 변수
    "$background_children_anchor|default": "center",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "background_panel_1": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 완전히 제거(공간도 없음)
          "ignored": "(not $rainbowpie_ui_flag_bg_mask_ingame or $is_pregame)",
          // ?? ????
          "clips_children": true,
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 기준점에서 이동하는 거리
          "offset": "$background_offset",
          // 기준점(어디에서 시작할지)
          "anchor_from": "$background_anchor",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "$background_anchor",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // ????? ?? ?
          "animation_reset_name": "$background_anim_reset",
          // 애니메이션 목록
          "anims": "$background_anims",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "image_mask": {
                // 이미지 표시
                "type": "image",
                // 완전히 제거(공간도 없음)
                "ignored": "(not $rainbowpie_ui_feature_background_mask)",
                // 보이기/숨기기(공간 유지)
                "visible": "$rainbowpie_ui_flag_bg_mask",
                // ?? ??
                "fill": true,
                // ??? ?? ?
                "allow_debug_missing_texture": false,
                // ??? ?? ?
                "force_texture_reload": true,
                // 가로/세로 크기
                "size": "$background_children_size",
                // 기준점에서 이동하는 거리
                "offset": "$background_children_offset",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$background_children_anchor",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$background_children_anchor",
                // 사용할 이미지 경로
                "texture": "$rainbowpie_ui_theme_background_mask_texture_ingame",
                // 겹치는 순서(숫자 클수록 위)
                "layer": "($background_layer + 3)",
                // ????? ?? ?
                "animation_reset_name": "$background_children_anim_reset",
                // 애니메이션 목록
                "anims": "$background_children_anims"
              }
            },
            {
              // ???/?? ??
              "image_noise": {
                // 완전히 제거(공간도 없음)
                "ignored": "((not $rainbowpie_ui_flag_a3a3e4ee) or (not $rainbowpie_ui_flag_1dc354bd))",
                // 이미지 표시
                "type": "image",
                // 이미지 반복 여부
                "tiled": true,
                // ?? ??
                "tiled_scale": [ 0.10, 0.10 ],
                // ??? ?? ?
                "allow_debug_missing_texture": false,
                // ??? ?? ?
                "force_texture_reload": true,
                // ???
                "alpha": 0.025,
                // 가로/세로 크기
                "size": "$background_children_size",
                // 기준점에서 이동하는 거리
                "offset": "$background_children_offset",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$background_children_anchor",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$background_children_anchor",
                // 사용할 이미지 경로
                "texture": "$rainbowpie_ui_theme_background_noise_texture",
                // 겹치는 순서(숫자 클수록 위)
                "layer": "($background_layer + 2)",
                // ????? ?? ?
                "animation_reset_name": "$background_children_anim_reset",
                // 애니메이션 목록
                "anims": "$background_children_anims"
              }
            }
          ]
        }
      }
    ]
  }
}

settings sections

controls_section.json 기본 UI 모음 2 · settings sections

필요한 부분만 참고해서 가져가세요.

// 예제: controls_section.json
// 분류: 기본 UI 모음 2 / settings sections
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "controls_section",

  // Remove this when mojang fix delayed_block_breaking on using Joystick & aim crosshair control mode
  "touch_section/common_touch_settings/option_creative_delayed_block_breaking": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": []
  },

  // ???/?? ??
  "touch_section/common_touch_settings/joystick_visibility_dropdown": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#joystick_visibility_visible",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.joystickVisibilityOption.visibleJoystick"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#joystick_visibility_hidden",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.joystickVisibilityOption.hiddenJoystick"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#joystick_visibility_hidden_when_unused",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.joystickVisibilityOption.hiddenJoystickWhenUnused"
        }
      }
    ]
  },

  // ???/?? ??
  "touch_section/common_touch_settings/sneak_dropdown": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#sneak_toggle",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.sneakOption.toggle"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#sneak_hold",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.sneakOption.hold"
        }
      }
    ]
  },

  // ???/?? ??
  "gamepad_mapping_item/keymapping_button_1": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "gamepad_mapping_item": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "keymapping_button_0",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "padding_button": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ 1, 1 ]
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "keymapping_button_reset@common_buttons.light_content_button": {
              // 오버라이드 가능한 변수
              "$button_image_size": [ "100%", "100%" ],
              // 오버라이드 가능한 변수
              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
              // 가로/세로 크기
              "size": [ "15% + 1px", "100% - 4px" ],
              // 겹치는 순서(숫자 클수록 위)
              "layer": 1,
              // 오버라이드 가능한 변수
              "$button_content": "controls_section.arrow_reset",
              // 오버라이드 가능한 변수
              "$pressed_button_name": "button.reset_binding",
              // 오버라이드 가능한 변수
              "$button_tts_header": "accessibility.settings.reset",
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 목록 인덱스/현재 항목 정보 제공
                  "binding_type": "collection_details",
                  // 목록 이름
                  "binding_collection_name": "$keymapping_collection"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "image_binding_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "image_binding_button_content/default_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "gamepad_mapping_item/option_info_label_control": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha"
  },

  // ???/?? ??
  "gamepad_mapping_item/option_info_label_control/keymapping_label_control": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "binding_button_content/default_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "keymapping_item/keymapping_button_1": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "keymapping_item": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "keymapping_button_0",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "padding_button": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ 1, 1 ]
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "keymapping_button_reset@common_buttons.light_content_button": {
              // 오버라이드 가능한 변수
              "$button_image_size": [ "100%", "100%" ],
              // 오버라이드 가능한 변수
              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
              // 가로/세로 크기
              "size": [ "15% + 1px", "100% - 4px" ],
              // 겹치는 순서(숫자 클수록 위)
              "layer": 1,
              // 오버라이드 가능한 변수
              "$button_content": "controls_section.arrow_reset",
              // 오버라이드 가능한 변수
              "$pressed_button_name": "button.reset_binding",
              // 오버라이드 가능한 변수
              "$button_tts_header": "accessibility.settings.reset",
              // 게임 값과 연결하는 규칙 목록
              "bindings": [
                {
                  // 목록 인덱스/현재 항목 정보 제공
                  "binding_type": "collection_details",
                  // 목록 이름
                  "binding_collection_name": "$keymapping_collection"
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "binding_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "keymapping_item/option_info_label_control": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha"
  },

  // ???/?? ??
  "keymapping_item/option_info_label_control/keymapping_label_control": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "controller_section/option_toggle_4": {
    // 완전히 제거(공간도 없음)
    "ignored": false
  },

  // ???/?? ??
  "keyboard_and_mouse_button": {
    // 오버라이드 가능한 변수
    "$icon_group_name": "controls",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "keyboard_and_mouse"
  },

  // ???/?? ??
  "controller_button": {
    // 오버라이드 가능한 변수
    "$icon_group_name": "controls",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "controller"
  },

  // ???/?? ??
  "touch_button": {
    // 오버라이드 가능한 변수
    "$icon_group_name": "controls",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "touch"
  }
}

general_section.json 기본 UI 모음 2 · settings sections

필요한 부분만 참고해서 가져가세요.

// 예제: general_section.json
// 분류: 기본 UI 모음 2 / settings sections
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "general_section",

  // ???/?? ??
  "max_framerate_slider": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": []
  },

  // ???/?? ??
  "general_tab_section/treatment_ids_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "general_tab_section/ecomode_label_header": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "general_tab_section/pause_label_header": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "diagnostics_toggles_panel/primary_panel/heading": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "advanced_graphics_options_section/upscaling_mode": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#upscaling_mode_radio_taau",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.upscalingModeOptions.taau"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#upscaling_mode_radio_bilinear",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.upscalingModeOptions.bilinear"
        }
      }
    ]
  },

  // ???/?? ??
  "device_info_toggles_panel/device_info_memory_tier_dropdown": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "memory_tier_superLow@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#memory_tier_superLow",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.creator.deviceInfoMemoryTier.superLow"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "memory_tier_low@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#memory_tier_low",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.creator.deviceInfoMemoryTier.low"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "memory_tier_mid@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#memory_tier_mid",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.creator.deviceInfoMemoryTier.mid"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "memory_tier_high@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#memory_tier_high",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.creator.deviceInfoMemoryTier.high"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "memory_tier_superHigh@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#memory_tier_superHigh",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.creator.deviceInfoMemoryTier.superHigh"
        }
      }
    ]
  },

  // ???/?? ??
  "device_info_toggles_panel/primary_panel/heading": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "content_log_panel/option_content_log_gui_level": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#content_log_gui_level_info",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.content_log_gui.level.info"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#content_log_gui_level_warn",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.content_log_gui.level.warn"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#content_log_gui_level_error",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.content_log_gui.level.error"
        }
      }
    ]
  },

  // ???/?? ??
  "watchdog_toggles_panel/primary_panel/heading": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "advanced_graphics_options_button_content": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "advanced_graphics_options_label",
        // ?? ??
        "operation": "insert_before",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "advanced_graphics_options_label_panel": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ "100%c", "100%" ],
              // ?? ?? ?
              "max_size": [ "75%", "100%" ],
              // 이 안에 들어가는 부품 목록
              "controls": [
                {
                  // 다른 템플릿을 가져와서 확장(상속)
                  "advanced_graphics_options_label@rainbowpie_ui_common.text_label": {
                    // 보여줄 글자
                    "text": "#graphics_mode_toggle_label",
                    // ?? (R,G,B,A)
                    "color": "$text_color",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                      {
                        // 가져올 값 이름
                        "binding_name": "#graphics_mode_toggle_label"
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "advanced_graphics_options_button_content/advanced_graphics_options_label": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "video_section/render_distance_slider": {
  },

  // ???/?? ??
  "debugger_toggles_panel/primary_panel/all_options_panel/attach_mode_option": {
  },

  // ???/?? ??
  "debugger_toggles_panel/primary_panel/heading": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "general_tab_section/auto_update_mode_dropdown": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "off@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#auto_update_mode_off",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.autoUpdateMode.off"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "wifi@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#auto_update_mode_on_wifi_only",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.autoUpdateMode.on.withWifiOnly"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "cellular@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#auto_update_mode_on_with_cellular",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.autoUpdateMode.on.withCellular"
        }
      }
    ]
  },

  // ???/?? ??
  "video_section/advanced_graphics_options_panel/advanced_graphics_options_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 2px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button"
  },

  // ???/?? ??
  "video_section/advanced_graphics_options_panel/graphics_mode": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#graphics_mode_radio_simple",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.graphicsMode.simple"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#graphics_mode_radio_fancy",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.graphicsMode.fancy"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#graphics_mode_radio_deferred",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#graphics_mode_radio_deferred_enabled",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.graphicsMode.deferred"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#graphics_mode_radio_ray_traced",
          // 오버라이드 가능한 변수
          "$option_enabled_binding_name": "#graphics_mode_radio_ray_traced_enabled",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.graphicsMode.rayTraced"
        }
      }
    ]
  },

  // ???/?? ??
  "chat_message_duration_info_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "chat_message_duration_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "toast_notification_duration_info_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "toast_notification_duration_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "glint_speed_slider_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "glint_strength_slider_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "darkness_slider_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "view_subscriptions_section/loading_subscriptions_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "view_subscriptions_section/failed_loading_subscriptions_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "realms_subscription_panel/middle_panel/renews_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "realms_subscription_stack/info/realms_desc_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "possible_store_mismatch/panel_content/label_panel/name_label2": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "consumable_not_extendable/panel_content/label_panel/name_label2": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "content_log_panel/content_log_location_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "content_log_panel/content_log_location_label_header": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "content_log_panel/content_log_section_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "creator_toggles_panel/copy_coordinate_section_stack_panel/content_log_section_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "editor_toggle_panel/editor_confirmation_panel/editor_confirmation_section_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "editor_toggle_panel/editor_confirmation_panel/editor_active_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "gamertag_controls/gamertag_label/panel_gamertag/gamertag_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "gamertag_controls/gamertag_label/panel_descriptor/label_descriptor": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "signin_subscription/sign_in/please_signin_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "account_section/account_info_buttom/account_info_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "switch_accounts_panel/name_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "sign_out_button_content/padded_label/label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "switch_accounts_button_content/padded_label/label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "view_account_errors_button_content": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "general_tab_section/build_info_label_panel/build_info_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ]
  },

  // ???/?? ??
  "general_tab_section/third_party_copyright_info_label_panel/copyright_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "general_tab_section/licenses_label_header": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "general_tab_section/network_label_header": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "language_grid_item": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_radio_enabled": true
  },

  // ???/?? ??
  "language_section/language_list_grid": {
    // 오버라이드 가능한 변수
    "$language_grid_item_template": "general_section.language_grid_item",
    // ??? ?? ?
    "grid_item_template": "$language_grid_item_template",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_flag_79f6bcad",
        // 오버라이드 가능한 변수
        "$language_grid_item_template": "rainbowpieui_general_section.worldtown_language_grid_item"
      }
    ]
  },

  // ???/?? ??
  "video_section/ui_profile_dropdown": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#ui_profile_radio_classic",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.uiprofile.classic"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#ui_profile_radio_pocket",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.uiprofile.pocket"
        }
      }
    ]
  },

  // ???/?? ??
  "upscaling_toggle": {
    // 오버라이드 가능한 변수
    "$option_label": "NVIDIA DLSS"
  },

  // ???/?? ??
  "video_section/perspective_dropdown": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#thirdperson_radio_first",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.thirdperson.firstperson"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#thirdperson_radio_third_back",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.thirdperson.thirdpersonback"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#thirdperson_radio_third_front",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.thirdperson.thirdpersonfront"
        }
      }
    ]
  },

  // ???/?? ??
  "accessibility_section/toast_notification_duration_options_panel/toast_notification_duration_dropdown": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#notification_duration_radio_ThreeSec",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.notificationDuration.toast.ThreeSec"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#notification_duration_radio_TenSec",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.notificationDuration.toast.TenSec"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#notification_duration_radio_ThirtySec",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.notificationDuration.toast.ThirtySec"
        }
      }
    ]
  },

  // ???/?? ??
  "accessibility_section/chat_message_duration_options_panel/chat_message_duration_dropdown": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#chat_message_duration_radio_ThreeSec",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.notificationDuration.toast.ThreeSec"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#chat_message_duration_radio_TenSec",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.notificationDuration.toast.TenSec"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#chat_message_duration_radio_ThirtySec",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.notificationDuration.toast.ThirtySec"
        }
      }
    ]
  },

  // ???/?? ??
  "general_button": {
    // 오버라이드 가능한 변수
    "$icon_group_name": "general",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "general"
  },

  // ???/?? ??
  "general_tab_section": {
    // 오버라이드 가능한 변수
    "$spatialPatternsPadding": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$paddingLineDivider": [ 0, 0 ]
  },

  // ???/?? ??
  "account_button": {
    // 오버라이드 가능한 변수
    "$icon_group_name": "general",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "profile",
    // 오버라이드 가능한 변수
    "$spatialPatternsPadding": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$paddingLineDivider": [ 0, 0 ]
  },

  // ???/?? ??
  "global_texture_pack_button": {
    // 오버라이드 가능한 변수
    "$state_collection_name": "#selected_pack_items_global"
  },

  // ???/?? ??
  "global_texture_pack_section": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_type": "global",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_control": "global_rp_search_text_box_display_text",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_placeholder": "rainbowpie.ui.resource_packs.search.placeholder.resource"
  },

  // ???/?? ??
  "storage_management_button": {
    // 오버라이드 가능한 변수
    "$icon_group_name": "general",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "storageIcon"
  },

  // ???/?? ??
  "creator_button": {
    // 오버라이드 가능한 변수
    "$icon_group_name": "general",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "creator"
  },

  // ???/?? ??
  "video_button": {
    // 오버라이드 가능한 변수
    "$icon_group_name": "general",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "video"
  },

  // ???/?? ??
  "view_subscriptions_button": {
    // 오버라이드 가능한 변수
    "$icon_group_name": "general",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "subscription"
  },

  // ???/?? ??
  "accessibility_button": {
    // 오버라이드 가능한 변수
    "$icon_group_name": "general",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "accessibility"
  },

  // ???/?? ??
  "sound_button": {
    // 오버라이드 가능한 변수
    "$icon_group_name": "general",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "sound"
  },

  // ???/?? ??
  "sound_section": {
    // 오버라이드 가능한 변수
    "$spatialPatternsPadding": [ "100%", 14 ],
	  // 오버라이드 가능한 변수
	  "$audioSlidersSize": [ "100% - 2px", 16 ]
  },

  // ???/?? ??
  "language_button": {
    // 오버라이드 가능한 변수
    "$icon_group_name": "general",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "language"
  },

  // ???/?? ??
  "how_to_play_button": {
    // 오버라이드 가능한 변수
    "$icon_group_name": "general",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "how_to_play"
  }
}

settings_common.json 기본 UI 모음 2 · settings sections

필요한 부분만 참고해서 가져가세요.

// 예제: settings_common.json
// 분류: 기본 UI 모음 2 / settings sections
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "settings_common",

  // ???/?? ??
  "option_radio_dropdown_group": {
    // 가로/세로 크기
    "size": [ "100%", "100%c" ]
  },

  // ???/?? ??
  "white_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "option_text_edit_control_with_text_button/button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 2px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button"
  },

  // ???/?? ??
  "option_text_edit_control_with_button": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "text_box",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "light_content_button@common_buttons.light_content_button": {
              // 오버라이드 가능한 변수
              "$button_image_size": [ "100%", "100% - 2px" ],
              // 오버라이드 가능한 변수
              "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_content_button",
              // 오버라이드 가능한 변수
              "$button_content": "settings_common.arrow_image",
              // 가로/세로 크기
              "size": [ "fill", "100%" ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "option_text_edit_control_with_button/button": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "option_info_label_with_image": {
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_background_color",
    // ???
    "alpha": "$rainbowpie_ui_theme_text_background_alpha"
  },

  // ???/?? ??
  "option_info_label_with_image/control": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name",
    // ?? (R,G,B,A)
    "color": "$rainbowpie_ui_theme_text_text_color"
  },

  // ???/?? ??
  "radio_visuals/radio_label": {
    // 기준점에서 이동하는 거리
    "offset": [ 4, 0 ],
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "radio_visuals": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_this_background_color|default": [ 0.0, 1.0, 0.0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_this_background_alpha|default": 1.0,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_this_btbar_color|default": [ 1.0, 1.0, 0.0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_this_btbar_alpha|default": 1.0,
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "radio_btbar": {
              // 이미지 표시
              "type": "image",
              // 사용할 이미지 경로
              "texture": "textures/ui/White",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $selected and not $hovered)",
              // 기준점(어디에서 시작할지)
              "anchor_from": "left_middle",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "left_middle",
              // 가로/세로 크기
              "size": [ 2, "100% + 1px" ],
              // ?? (R,G,B,A)
              "color": "$rainbowpie_localui_this_btbar_color",
              // ???
              "alpha": "$rainbowpie_localui_this_btbar_alpha",
              // 겹치는 순서(숫자 클수록 위)
              "layer": 8,
              // 조건에 따라 변수 값을 바꾸기
              "variables": [
                {
                  // 이 조건이 맞으면 적용
                  "requires": "((not $selected) and $hovered)",
                  // 오버라이드 가능한 변수
                  "$rainbowpie_localui_this_btbar_color": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_color",
                  // 오버라이드 가능한 변수
                  "$rainbowpie_localui_this_btbar_alpha": "$rainbowpie_ui_theme_toggle_background_unchecked_hover_btbar_alpha"
                },
                {
                  // 이 조건이 맞으면 적용
                  "requires": "($selected and $hovered)",
                  // 오버라이드 가능한 변수
                  "$rainbowpie_localui_this_btbar_color": "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_color",
                  // 오버라이드 가능한 변수
                  "$rainbowpie_localui_this_btbar_alpha": "$rainbowpie_ui_theme_toggle_background_checked_hover_btbar_alpha"
                },
                {
                  // 이 조건이 맞으면 적용
                  "requires": "($selected)",
                  // 오버라이드 가능한 변수
                  "$rainbowpie_localui_this_btbar_color": "$rainbowpie_ui_theme_toggle_background_checked_default_btbar_color",
                  // 오버라이드 가능한 변수
                  "$rainbowpie_localui_this_btbar_alpha": "$rainbowpie_ui_theme_toggle_background_checked_default_btbar_alpha"
                }
              ]
            }
          },
          {
            // ???/?? ??
            "radio_background": {
              // 이미지 표시
              "type": "image",
              // 가로/세로 크기
              "size": [ "100%", "100% + 1px" ],
              // 완전히 제거(공간도 없음)
              "ignored": "(not $selected and not $hovered)",
              // 사용할 이미지 경로
              "texture": "textures/ui/White",
              // ?? (R,G,B,A)
              "color": "$rainbowpie_localui_this_background_color",
              // ???
              "alpha": "$rainbowpie_localui_this_background_alpha",
              // 겹치는 순서(숫자 클수록 위)
              "layer": 1,
              // 조건에 따라 변수 값을 바꾸기
              "variables": [
                {
                  // 이 조건이 맞으면 적용
                  "requires": "((not $selected) and $hovered)",
                  // 오버라이드 가능한 변수
                  "$rainbowpie_localui_this_background_color": [ 0.011, 0.011, 0.011 ],
                  // 오버라이드 가능한 변수
                  "$rainbowpie_localui_this_background_alpha": 0.5
                },
                {
                  // 이 조건이 맞으면 적용
                  "requires": "($selected and $hovered)",
                  // 오버라이드 가능한 변수
                  "$rainbowpie_localui_this_background_color": [ 0.011, 0.011, 0.011 ],
                  // 오버라이드 가능한 변수
                  "$rainbowpie_localui_this_background_alpha": 0.4
                },
                {
                  // 이 조건이 맞으면 적용
                  "requires": "($selected)",
                  // 오버라이드 가능한 변수
                  "$rainbowpie_localui_this_background_color": [ 0.011, 0.011, 0.011 ],
                  // 오버라이드 가능한 변수
                  "$rainbowpie_localui_this_background_alpha": 0.4
                }
              ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "radio_visuals/accessibility_selection_highlight": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "radio_visuals/radio_image": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "radio_with_label_core": {
  },

  // ???/?? ??
  "option_group_label/text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "options_dropdown_toggle_control": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_rainbowpiebutton_enabled|default": false,
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_localui_dropdown_rainbowpiebutton_enabled",
        // 오버라이드 가능한 변수
        "$unchecked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked",
        // 오버라이드 가능한 변수
        "$checked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked",
        // 오버라이드 가능한 변수
        "$unchecked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_hover",
        // 오버라이드 가능한 변수
        "$checked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_hover",
        // 오버라이드 가능한 변수
        "$unchecked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
        // 오버라이드 가능한 변수
        "$unchecked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
        // 오버라이드 가능한 변수
        "$checked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked",
        // 오버라이드 가능한 변수
        "$checked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked",
        // 오버라이드 가능한 변수
        "$default_chevron": "textures/ui/chevron_white_down"
      }
    ]
  },

  // ???/?? ??
  "options_dropdown_dark_toggle_control": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_rainbowpiebutton_enabled|default": false,
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_localui_dropdown_rainbowpiebutton_enabled",
        // 오버라이드 가능한 변수
        "$unchecked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked",
        // 오버라이드 가능한 변수
        "$checked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked",
        // 오버라이드 가능한 변수
        "$unchecked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_hover",
        // 오버라이드 가능한 변수
        "$checked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_hover",
        // 오버라이드 가능한 변수
        "$unchecked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
        // 오버라이드 가능한 변수
        "$unchecked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
        // 오버라이드 가능한 변수
        "$checked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked",
        // 오버라이드 가능한 변수
        "$checked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked",
        // 오버라이드 가능한 변수
        "$default_chevron": "textures/ui/chevron_white_down"
      }
    ]
  },

  // ???/?? ??
  "option_dropdown_control_no_scroll": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled|default": false,
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_localui_dropdown_enabled",
        // 오버라이드 가능한 변수
        "$option_dropdown_size|default": [ "100%", 25 ],
        // 오버라이드 가능한 변수
        "$option_dropdown_type": "rainbowpie_ui_common.rainbowpie_ui_dropdown",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_dropdown_type": "common.dropdown_no_scrollpanel"
      }
    ]
  },

  // ???/?? ??
  "option_dropdown_control": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled|default": false,
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_localui_dropdown_enabled",
        // 오버라이드 가능한 변수
        "$option_dropdown_size|default": [ "100%", 25 ],
        // 오버라이드 가능한 변수
        "$option_dropdown_type": "rainbowpie_ui_common.rainbowpie_ui_dropdown",
        // 오버라이드 가능한 변수
        "$rainbowpie_localui_dropdown_type": "common.dropdown"
      }
    ]
  },

  // ???/?? ??
  "action_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // 가로/세로 크기
    "size": [ "100%", 28 ]
  },

  // ???/?? ??
  "link_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100% - 1px" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // 가로/세로 크기
    "size": [ "100%", 28 ]
  },

  // ???/?? ??
  "option_generic_core/two_line_layout/option_label_panel/option_label_subpanel_01/option_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

    // ???/?? ??
    "option_generic_core/two_line_layout/option_label_panel/option_label_subpanel_02/option_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "option_generic_core/two_line_layout/option_descriptive_text_0": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "option_generic_core/one_line_layout/option_label_subpanel_01/option_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

    // ???/?? ??
    "option_generic_core/one_line_layout/option_label_subpanel_02/option_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "option_generic_core/one_line_layout/option_descriptive_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "option_toggle_control": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_toggle_enabled|default": false,
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_localui_toggle_enabled",
        // 오버라이드 가능한 변수
        "$unchecked_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_off",
        // 오버라이드 가능한 변수
        "$checked_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_on",
        // 오버라이드 가능한 변수
        "$unchecked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_off_hover",
        // 오버라이드 가능한 변수
        "$checked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_on_hover",
        // 오버라이드 가능한 변수
        "$unchecked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_off_locked",
        // 오버라이드 가능한 변수
        "$unchecked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_off_locked",
        // 오버라이드 가능한 변수
        "$checked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_on_locked",
        // 오버라이드 가능한 변수
        "$checked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_option_toggle_on_locked"
      }
    ]
  },

  // ???/?? ??
  "selector_group_label": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "toggle_button_control": {
    // 오버라이드 가능한 변수
    "$icon_theme_dir|default": "($rainbowpie_ui_path_theme + '/icon/settings')",
    // 오버라이드 가능한 변수
    "$icon_size|default": [ 15, 15 ],
    // 오버라이드 가능한 변수
    "$icon_texture_name|default": "null",
    // 오버라이드 가능한 변수
    "$icon_group_name|default": "null",
    // 오버라이드 가능한 변수
    "$icon_offset|default": [ 5, 0 ],
    // 오버라이드 가능한 변수
    "$icon_anchor_from|default": "left_middle",
    // 오버라이드 가능한 변수
    "$icon_anchor_to|default": "left_middle",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "$rainbowpie_ui_feature_settings_themedIcon",
        // 오버라이드 가능한 변수
        "$button_label_offset|default": [ 28, 0 ]
      }
    ],
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "section_icon": {
              // 이미지 표시
              "type": "image",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $rainbowpie_ui_feature_settings_themedIcon)",
              // 기준점(어디에서 시작할지)
              "anchor_from": "$icon_anchor_from",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "$icon_anchor_to",
              // 기준점에서 이동하는 거리
              "offset": "$icon_offset",
              // 사용할 이미지 경로
              "texture": "($icon_theme_dir + '/' + $icon_group_name + '/' + $icon_texture_name)",
              // 가로/세로 크기
              "size": "$icon_size",
              // 겹치는 순서(숫자 클수록 위)
              "layer": 3,
              // ?? (R,G,B,A)
              "color": "$text_color",
              // ???
              "alpha": 1
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "toggle_button_control/glyph": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_feature_settings_themedIcon"
  },

  // ???/?? ??
  "toggle_button_control/glyph_color": {
    // 완전히 제거(공간도 없음)
    "ignored": "$rainbowpie_ui_feature_settings_themedIcon"
  },

  // ???/?? ??
  "toggle_button_control/tab_button_text": {
    // ??
    "font_type": "$rainbowpie_ui_theme_global_font_name",
    // ?? ?? ?
    "backup_font_type": "$rainbowpie_ui_theme_global_font_backup_name"
  },

  // ???/?? ??
  "scrollable_selector_area_content": {
    // 기준점에서 이동하는 거리
    "offset": [ 1, 1 ],
    // 가로/세로 크기
    "size": [ "100% - 2px", "100%c + 2px" ]
  },

  // ???/?? ??
  "content_area": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 20 ],
    // 가로/세로 크기
    "size": [ "62%", "100% - 20px" ]
  },

  // ???/?? ??
  "selector_area": {
    // 기준점에서 이동하는 거리
    "offset": [ 0, 20 ],
    // 가로/세로 크기
    "size": [ "38%", "100% - 20px" ]
  },

  // ???/?? ??
  "selector_area/scrolling_panel": {
    // 오버라이드 가능한 변수
    "$scroll_bar_left_padding_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_right_padding_size": [ 1, 0 ]
  },

  // ???/?? ??
  "section_toggle_base": {
    // 오버라이드 가능한 변수
    "$unchecked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked",
    // 오버라이드 가능한 변수
    "$checked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked",
    // 오버라이드 가능한 변수
    "$unchecked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_hover",
    // 오버라이드 가능한 변수
    "$checked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_hover",
    // 오버라이드 가능한 변수
    "$unchecked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
    // 오버라이드 가능한 변수
    "$unchecked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_unchecked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked",
    // 오버라이드 가능한 변수
    "$checked_locked_hover_control": "rainbowpieui_settings_common.rainbowpie_ui_toggle_checked_locked",
    // 가로/세로 크기
    "size": [ "100%", "25px" ]
  },

  // ???/?? ??
  "dynamic_dialog_screen": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_modified": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_screen_alias": "settings",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_overlay_screen": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_overlay_screen_content": "rainbowpieui_settings_common.settings_overlay_content",
    // 오버라이드 가능한 변수
    "$screen_content": "rainbowpieui_settings_common.settings_content",
    // 오버라이드 가능한 변수
    "$is_full_screen_layout": false
  }
}

world_section.json 기본 UI 모음 2 · settings sections

필요한 부분만 참고해서 가져가세요.

// 예제: world_section.json
// 분류: 기본 UI 모음 2 / settings sections
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// VERSION: 2.11.10550.1 (v1.21.113)
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "world_section",

  // ???/?? ??
  "game_section/level_seed_selector": {
    // 오버라이드 가능한 변수
    "$option_enabled_binding_name": "#none"
  },

  // ???/?? ??
  "game_section": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "world_cheats_label",
        // ?? ??
        "operation": "insert_before",
        // ??? ?
        "value": [
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "education_settings_label@settings_common.option_group_label": {
              // 오버라이드 가능한 변수
              "$text": "Education Edition Settings",
              // 조건에 따라 변수 값을 바꾸기
              "variables": [
                {
                  // 이 조건이 맞으면 적용
                  "requires": "$education_edition",
                  // 오버라이드 가능한 변수
                  "$font_type": "MinecraftTen",
                  // 오버라이드 가능한 변수
                  "$font_scale_factor": 1.2
                }
              ]
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "perfect_weather@settings_common.option_toggle": {
              // 오버라이드 가능한 변수
              "$tts_section_header": "createWorldScreen.cheatSettings",
              // 오버라이드 가능한 변수
              "$option_label": "Perfect Weather",
              // 오버라이드 가능한 변수
              "$option_binding_name": "#perfect_weather",
              // 오버라이드 가능한 변수
              "$option_enabled_binding_name": "#perfect_weather_enabled",
              // 오버라이드 가능한 변수
              "$toggle_name": "perfect_weather",
              // 오버라이드 가능한 변수
              "$focus_override_right": "FOCUS_OVERRIDE_STOP",
              // 오버라이드 가능한 변수
              "$toggle_binding_condition": "always_when_visible"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "immutable_world@settings_common.option_toggle": {
              // 오버라이드 가능한 변수
              "$tts_section_header": "createWorldScreen.cheatSettings",
              // 오버라이드 가능한 변수
              "$option_label": "Immutable World",
              // 오버라이드 가능한 변수
              "$option_binding_name": "#immutable_world",
              // 오버라이드 가능한 변수
              "$option_enabled_binding_name": "#immutable_world_enabled",
              // 오버라이드 가능한 변수
              "$toggle_name": "immutable_world",
              // 오버라이드 가능한 변수
              "$focus_override_right": "FOCUS_OVERRIDE_STOP",
              // 오버라이드 가능한 변수
              "$toggle_binding_condition": "always_when_visible"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "show_border_effect@settings_common.option_toggle": {
              // 완전히 제거(공간도 없음)
              "ignored": true,
              // 오버라이드 가능한 변수
              "$tts_section_header": "createWorldScreen.cheatSettings",
              // 오버라이드 가능한 변수
              "$option_label": "createWorldScreen.showbordereffect",
              // 오버라이드 가능한 변수
              "$option_binding_name": "#show_border_effect",
              // 오버라이드 가능한 변수
              "$option_enabled_binding_name": "#show_border_effect_enabled",
              // 오버라이드 가능한 변수
              "$toggle_name": "show_border_effect",
              // 오버라이드 가능한 변수
              "$focus_override_right": "FOCUS_OVERRIDE_STOP",
              // 오버라이드 가능한 변수
              "$toggle_binding_condition": "always_when_visible"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "player_damage@settings_common.option_toggle": {
              // 오버라이드 가능한 변수
              "$tts_section_header": "createWorldScreen.cheatSettings",
              // 오버라이드 가능한 변수
              "$option_label": "Player Damage",
              // 오버라이드 가능한 변수
              "$option_binding_name": "#player_damage",
              // 오버라이드 가능한 변수
              "$option_enabled_binding_name": "#player_damage_enabled",
              // 오버라이드 가능한 변수
              "$toggle_name": "player_damage",
              // 오버라이드 가능한 변수
              "$focus_override_right": "FOCUS_OVERRIDE_STOP",
              // 오버라이드 가능한 변수
              "$toggle_binding_condition": "always_when_visible"
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "game_section/export_template_panel/template_version": {
    // 완전히 제거(공간도 없음)
    "ignored": false
  },

  // ???/?? ??
  "game_section/export_template_panel/template_buttons": {
    // 완전히 제거(공간도 없음)
    "ignored": "(not $file_picking_supported)"
  },

  // ???/?? ??
  "level_texture_pack_section": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_type": "texture",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_control": "level_rp_search_text_box_display_text",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_placeholder": "rainbowpie.ui.resource_packs.search.placeholder.resource"
  },

  // ???/?? ??
  "addon_section": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_type": "addon",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_control": "level_bp_search_text_box_display_text",
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_resource_packs_search_box_placeholder": "rainbowpie.ui.resource_packs.search.placeholder.behavior"
  },

  // ???/?? ??
  "game_section/option_dropdown_0": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "world_survival_mode_toggle@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#world_game_mode_radio_survival",
          // 오버라이드 가능한 변수
          "$radio_label_text": "createWorldScreen.gameMode.survival"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "world_creative_mode_toggle@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#world_game_mode_radio_creative",
          // 오버라이드 가능한 변수
          "$radio_label_text": "createWorldScreen.gameMode.creative"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "world_adventure_mode_toggle@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 완전히 제거(공간도 없음)
          "ignored": "($is_world_create or $trial)",
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#world_game_mode_radio_adventure",
          // 오버라이드 가능한 변수
          "$radio_label_text": "createWorldScreen.gameMode.adventure"
        }
      }
    ]
  },

  // ???/?? ??
  "game_section/option_dropdown_1": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "player_default_mode_toggle@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#player_game_mode_radio_default",
          // 오버라이드 가능한 변수
          "$radio_label_text": "createWorldScreen.gameMode.serverDefault"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "player_survival_mode_toggle@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#player_game_mode_radio_survival",
          // 오버라이드 가능한 변수
          "$radio_label_text": "createWorldScreen.gameMode.survival"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "player_creative_mode_toggle@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#player_game_mode_radio_creative",
          // 오버라이드 가능한 변수
          "$radio_label_text": "createWorldScreen.gameMode.creative"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "player_adventure_mode_toggle@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#player_game_mode_radio_adventure",
          // 오버라이드 가능한 변수
          "$radio_label_text": "createWorldScreen.gameMode.adventure"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "player_spectator_mode_toggle@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#player_game_mode_radio_spectator",
          // 오버라이드 가능한 변수
          "$radio_label_text": "createWorldScreen.gameMode.spectator"
        }
      }
    ]
  },

  // ???/?? ??
  "game_section/option_dropdown_2": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#world_difficulty_radio_peaceful",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.difficulty.peaceful"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#world_difficulty_radio_easy",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.difficulty.easy"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#world_difficulty_radio_normal",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.difficulty.normal"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#world_difficulty_radio_hard",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.difficulty.hard"
        }
      }
    ]
  },

  // ???/?? ??
  "game_section/option_dropdown_permissions": {
    // 오버라이드 가능한 변수
    "$is_world_settings|default": false,
		// 오버라이드 가능한 변수
		"$is_in_realm|default": false,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
				// 다른 템플릿을 가져와서 확장(상속)
				"permission_level_radio_visitor@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
					// 완전히 제거(공간도 없음)
					"ignored": "$is_world_settings",
					// 오버라이드 가능한 변수
					"$toggle_state_binding_name": "#permission_level_radio_visitor",
					// 오버라이드 가능한 변수
					"$radio_label_text": "permissions.level.visitor",
					// 오버라이드 가능한 변수
					"$permissions_visuals_normal": "permissions.permissions_visitor_radio_visuals_normal",
					// 오버라이드 가능한 변수
					"$permissions_visuals_hover": "permissions.permissions_visitor_radio_visuals_hover"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"permission_level_radio_visitor_settings@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
					// 완전히 제거(공간도 없음)
					"ignored": "(not $is_world_settings)",
					// 오버라이드 가능한 변수
					"$toggle_state_binding_name": "#permission_level_radio_visitor",
					// 오버라이드 가능한 변수
					"$radio_label_text": "permissions.level.visitor",
					// 오버라이드 가능한 변수
					"$radio_label_desc": "permissions.description.visitors",
					// 오버라이드 가능한 변수
					"$permissions_visuals_normal": "permissions.permissions_visitor_visuals_with_title_normal",
					// 오버라이드 가능한 변수
					"$permissions_visuals_hover": "permissions.permissions_visitor_visuals_with_title_hover"
				}
			},
			// MEMBER //
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"permission_level_radio_member@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
					// 완전히 제거(공간도 없음)
					"ignored": "$is_world_settings",
					// 오버라이드 가능한 변수
					"$toggle_state_binding_name": "#permission_level_radio_member",
					// 오버라이드 가능한 변수
					"$radio_label_text": "permissions.level.member",
					// 오버라이드 가능한 변수
					"$permissions_visuals_normal": "permissions.permissions_member_radio_visuals_normal",
					// 오버라이드 가능한 변수
					"$permissions_visuals_hover": "permissions.permissions_member_radio_visuals_hover"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"permission_level_radio_member_settings@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
					// 완전히 제거(공간도 없음)
					"ignored": "(not $is_world_settings)",
					// 오버라이드 가능한 변수
					"$toggle_state_binding_name": "#permission_level_radio_member",
					// 오버라이드 가능한 변수
					"$radio_label_text": "permissions.level.member",
					// 오버라이드 가능한 변수
					"$radio_label_desc": "permissions.description.members",
					// 오버라이드 가능한 변수
					"$permissions_visuals_normal": "permissions.permissions_member_visuals_with_title_normal",
					// 오버라이드 가능한 변수
					"$permissions_visuals_hover": "permissions.permissions_member_visuals_with_title_hover"
				}
			},
			// OPERATOR //
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"permission_level_radio_operator@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
					// 완전히 제거(공간도 없음)
					"ignored": "$is_world_settings",
					// 오버라이드 가능한 변수
					"$toggle_state_binding_name": "#permission_level_radio_operator",
					// 오버라이드 가능한 변수
					"$radio_label_text": "permissions.level.operator",
					// 오버라이드 가능한 변수
					"$permissions_visuals_normal": "permissions.permissions_op_radio_visuals_normal",
					// 오버라이드 가능한 변수
					"$permissions_visuals_hover": "permissions.permissions_op_radio_visuals_hover"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"permission_level_radio_operator_settings@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
					// 완전히 제거(공간도 없음)
					"ignored": "(not $is_world_settings)",
					// 오버라이드 가능한 변수
					"$toggle_state_binding_name": "#permission_level_radio_operator",
					// 오버라이드 가능한 변수
					"$radio_label_text": "permissions.level.operator",
					// 오버라이드 가능한 변수
					"$radio_label_desc": "permissions.description.operators",
					// 오버라이드 가능한 변수
					"$permissions_visuals_normal": "permissions.permissions_op_visuals_with_title_normal",
					// 오버라이드 가능한 변수
					"$permissions_visuals_hover": "permissions.permissions_op_visuals_with_title_hover"
				}
			},
			// CUSTOM //
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"permission_level_radio_custom@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
					// 완전히 제거(공간도 없음)
					"ignored": "($is_world_settings or $is_in_realm)",
					// 오버라이드 가능한 변수
					"$toggle_state_binding_name": "#permission_level_radio_custom",
					// 오버라이드 가능한 변수
					"$radio_label_text": "permissions.level.custom",
					// 오버라이드 가능한 변수
					"$permissions_visuals_normal": "permissions.permissions_custom_radio_visuals_normal",
					// 오버라이드 가능한 변수
					"$permissions_visuals_hover": "permissions.permissions_custom_radio_visuals_hover"
				}
			}
    ]
  },

  // ???/?? ??
  "game_section/option_dropdown_3": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "flat_world_type_toggle@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#world_type_radio_flat",
          // 오버라이드 가능한 변수
          "$radio_label_text": "generator.flat"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "infinite_world_type_toggle@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#world_type_radio_infinite",
          // 오버라이드 가능한 변수
          "$radio_label_text": "generator.infinite"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "old_world_type_toggle@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#world_type_radio_old",
          // 오버라이드 가능한 변수
          "$radio_label_text": "generator.old"
        }
      }
    ]
  },

  // ???/?? ??
  "multiplayer_section/xbl_settings_dropdown": {
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_enabled": true,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_dropdown_content": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "invite_only_toggle@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#xbl_broadcast_invite_only",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.xboxliveBroadcast.inviteOnly"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "friends_only_toggle@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#xbl_broadcast_friends_only",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.xboxliveBroadcast.friendsOnly"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "friends_of_friends_toggle@rainbowpieui_settings_common.rainbowpie_ui_radio_with_label": {
          // 오버라이드 가능한 변수
          "$toggle_state_binding_name": "#xbl_broadcast_friends_of_friends",
          // 오버라이드 가능한 변수
          "$radio_label_text": "options.xboxliveBroadcast.friendsOfFriends"
        }
      }
    ]
  },

  // ???/?? ??
  "selector_pane_content": {
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "world_snapshot_image",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "rp_spacer_1": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 완전히 제거(공간도 없음)
              "ignored": "(not $is_pregame)",
              // 가로/세로 크기
              "size": [ 1, 1 ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "play_or_create_stack_bedrock": {
    // 가로/세로 크기
    "size": [ "100%", 27 ],
    // ?? ?? ??
    "modifications": [
      {
        // ??? ???
        "control_name": "create_or_play_button",
        // ?? ??
        "operation": "insert_after",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "rp_spacer_1": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 가로/세로 크기
              "size": [ 1, 1 ]
            }
          }
        ]
      }
    ]
  },

  // ???/?? ??
  "play_or_create_stack_bedrock/create_or_play_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // 가로/세로 크기
    "size": [ "fill", 28 ]
  },

  // ???/?? ??
  "play_or_create_stack_bedrock/play_on_realm_button": {
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$button_state_panel": "rainbowpie_ui_button.rainbowpie_ui_text_button",
    // 가로/세로 크기
    "size": [ "fill", 28 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_color": [ 1.0, 0.7294117647058824, 0.9058823529411765 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_color": [ 0.7647058823529412, 0.2980392156862745, 0.9254901960784314 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_color": [ 0.85098, 0.301961, 0.301961 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_default_alpha": 0.5,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_hover_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_pressed_alpha": 0.4,
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_default_color": [ 1.0, 1.0, 1.0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_hover_color": [ 1.0, 1.0, 1.0 ],
    // 오버라이드 가능한 변수
    "$rainbowpie_localui_button_text_pressed_color": [ 1.0, 1.0, 1.0 ]
  },

  // ???/?? ??
  "selector_pane_content/world_snapshot_image/thumbnail/border": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },

  // ???/?? ??
  "selector_pane_content/world_snapshot_image": {
    // ?? ????
    "clips_children": true,
    // 가로/세로 크기
    "size": [ "100%", "100%c" ]
  },

  // ???/?? ??
  "selector_pane_content/world_snapshot_image/thumbnail": {
    // 가로/세로 크기
    "size": [ "100%", "56.25%x + 2.25px" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ]
  },

  // ???/?? ??
  "game_button": {
    // 오버라이드 가능한 변수
    "$icon_group_name": "game",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "world"
  },

  // ???/?? ??
  "multiplayer_button": {
    // 오버라이드 가능한 변수
    "$icon_group_name": "game",
    // 오버라이드 가능한 변수
    "$icon_texture_name": "multiplayer"
  },

  // ???/?? ??
  "selector_pane_content/server_settings_visibility_panel": {
  },

  // ???/?? ??
  "selector_pane_content/server_settings_visibility_panel/selector_group_label_0": {
    // 완전히 제거(공간도 없음)
    "ignored": "($is_pregame or $rainbowpie_ui_feature_markbest)"
  },

  // ???/?? ??
  "selector_pane_content/server_settings_visibility_panel/server_spacer": {
    // 가로/세로 크기
    "size": [ 1, 1 ]
  },

  // ???/?? ??
  "selector_pane_content/selector_group_label_1": {
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_feature_markbest)"
  },

  // ???/?? ??
  "selector_pane_content/spacer": {
    // 가로/세로 크기
    "size": [ 1, 1 ]
  },

  // ???/?? ??
  "addons_selector_panel/spacer_01": {
    // 가로/세로 크기
    "size": [ 1, 1 ]
  },

  // ???/?? ??
  "addons_selector_panel/selector_group_label_2": {
    // 완전히 제거(공간도 없음)
    "ignored": "($rainbowpie_ui_feature_markbest)"
  }
}

실전 예제 3 개

기본

_global_variables.json 실전 예제 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: _global_variables.json
// 분류: 실전 예제 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // RPG 스타일 NPC 대화창 변수

  // NPC 대화 텍스트 색상
  "$npc_dialog_text_color": [0.95, 0.95, 0.95],

  // NPC 이름 색상
  "$npc_name_color": [1.0, 0.9, 0.5],

  // 대화 박스 배경 색상
  "$dialogue_box_bg_color": [0.12, 0.1, 0.08],
  // 오버라이드 가능한 변수
  "$dialogue_box_border_color": [0.4, 0.3, 0.2],

  // 버튼 색상
  "$button_default_bg": [0.2, 0.15, 0.1],
  // 오버라이드 가능한 변수
  "$button_default_border": [0.4, 0.3, 0.2],
  // 오버라이드 가능한 변수
  "$button_hover_bg": [0.35, 0.25, 0.15],
  // 오버라이드 가능한 변수
  "$button_hover_border": [0.8, 0.6, 0.2],
  // 오버라이드 가능한 변수
  "$button_pressed_bg": [0.15, 0.1, 0.05],
  // 오버라이드 가능한 변수
  "$button_pressed_border": [0.3, 0.2, 0.1]
}

manifest.json 실전 예제 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: manifest.json
// 분류: 실전 예제 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // ?? ??
  "format_version": 2,
  // ???/?? ??
  "header": {
    // ?? ??
    "name": "RPG Style NPC Dialogue UI",
    // ?? ??
    "description": "§eRPG 스타일 NPC 대화창\n§7NPC 이미지를 왼쪽 하단에 배치하고\n§7대화창과 선택지를 RPG 게임처럼 디자인",
    // ?? ??
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    // ?? ??
    "version": [1, 0, 0],
    // ?? ??
    "min_engine_version": [1, 20, 0]
  },
  // ???/?? ??
  "modules": [
    {
      // 컨트롤 종류
      "type": "resources",
      // ?? ??
      "uuid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      // ?? ??
      "version": [1, 0, 0]
    }
  ]
}

npc_interact_screen.json 실전 예제 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: npc_interact_screen.json
// 분류: 실전 예제 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "npc_interact",

  /********************************************************************************
   * RPG 스타일 NPC 대화창
   * 참고: form_buttons 바인딩 사용
   ********************************************************************************/

  // ==================== NPC 초상화 패널 ====================

  "npc_portrait_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [120, "100%"],
    // 기준점(어디에서 시작할지)
    "anchor_from": "left_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "left_middle",
    // 기준점에서 이동하는 거리
    "offset": [8, 0],

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "portrait_frame": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100%", "100% - 8px"],
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // ?? (R,G,B,A)
          "color": [0.2, 0.2, 0.2],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "portrait_bg": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100% - 6px", "100% - 14px"],
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // ?? (R,G,B,A)
          "color": [0.1, 0.1, 0.1],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      },
      {
        // ???/?? ??
        "npc_model": {
          // 특수 렌더러(그라디언트/플레이어 등)
          "type": "custom",
          // 커스텀 렌더러 종류
          "renderer": "live_player_renderer",
          // 가로/세로 크기
          "size": ["100% - 12px", "100% - 20px"],
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 애니메이션 목록
          "anims": [
            "@common.screen_exit_size_animation_push",
            "@common.screen_exit_size_animation_pop",
            "@common.screen_entrance_size_animation_push",
            "@common.screen_entrance_size_animation_pop"
          ]
        }
      }
    ]
  },

  // ==================== 대사 텍스트 영역 ====================

  "dialogue_content_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": ["fill", "100%"],
    // 기준점에서 이동하는 거리
    "offset": [136, 0],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "top_padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": ["100%", 12]
        }
      },
      {
        // ???/?? ??
        "title_label": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "#title_text",
          // ?? (R,G,B,A)
          "color": [1.0, 1.0, 1.0],
          // ?? ?? ?
          "font_size": "large",
          // ?? ??
          "shadow": true,
          // 가로/세로 크기
          "size": ["100% - 200px", "default"],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#title_text",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "title_spacing": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": ["100%", 6]
        }
      },
      {
        // ???/?? ??
        "dialogue_label": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "#dialogtext",
          // ?? (R,G,B,A)
          "color": [0.85, 0.85, 0.85],
          // ?? ??
          "shadow": true,
          // 가로/세로 크기
          "size": ["100% - 200px", "default"],
          // ??/?? ?
          "line_padding": 2,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#dialogtext"
            }
          ]
        }
      }
    ]
  },

  // ==================== 버튼 (참고 코드 방식) ====================

  "button_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", 30],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button@common.button": {
          // 가로/세로 크기
          "size": ["100% - 4px", "100%"],
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.form_button_click",

          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            }
          ],

          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "default": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": ["100%", "100%"],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "bg": {
                      // 이미지 표시
                      "type": "image",
                      // 사용할 이미지 경로
                      "texture": "textures/ui/White",
                      // 가로/세로 크기
                      "size": ["100%", "100%"],
                      // ?? (R,G,B,A)
                      "color": [0.2, 0.2, 0.2],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  },
                  {
                    // 보여줄 글자
                    "text": {
                      // 글자 표시
                      "type": "label",
                      // 보여줄 글자
                      "text": "#form_button_text",
                      // ?? (R,G,B,A)
                      "color": [0.9, 0.9, 0.9],
                      // ?? ??
                      "shadow": true,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#form_button_text",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "form_buttons"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "hover": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": ["100%", "100%"],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "bg": {
                      // 이미지 표시
                      "type": "image",
                      // 사용할 이미지 경로
                      "texture": "textures/ui/White",
                      // 가로/세로 크기
                      "size": ["100%", "100%"],
                      // ?? (R,G,B,A)
                      "color": [0.4, 0.4, 0.4],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  },
                  {
                    // 보여줄 글자
                    "text": {
                      // 글자 표시
                      "type": "label",
                      // 보여줄 글자
                      "text": "#form_button_text",
                      // ?? (R,G,B,A)
                      "color": [1.0, 1.0, 1.0],
                      // ?? ??
                      "shadow": true,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#form_button_text",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "form_buttons"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "pressed": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": ["100%", "100%"],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "bg": {
                      // 이미지 표시
                      "type": "image",
                      // 사용할 이미지 경로
                      "texture": "textures/ui/White",
                      // 가로/세로 크기
                      "size": ["100%", "100%"],
                      // ?? (R,G,B,A)
                      "color": [0.15, 0.15, 0.15],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1
                    }
                  },
                  {
                    // 보여줄 글자
                    "text": {
                      // 글자 표시
                      "type": "label",
                      // 보여줄 글자
                      "text": "#form_button_text",
                      // ?? (R,G,B,A)
                      "color": [0.7, 0.7, 0.7],
                      // ?? ??
                      "shadow": true,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "center",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "center",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#form_button_text",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "form_buttons"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "buttons_stack": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": ["100%", "100%c"],
    // 목록 아이템을 자동으로 생성
    "factory": {
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "npc_interact.button_item"
    },
    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
      }
    ]
  },

  // ???/?? ??
  "buttons_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [160, "100%"],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 기준점에서 이동하는 거리
    "offset": [-8, 0],

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "buttons_scroll@common.scrolling_panel": {
          // 가로/세로 크기
          "size": ["100%", "100%"],
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 오버라이드 가능한 변수
          "$show_background": false,
          // 오버라이드 가능한 변수
          "$scrolling_content": "npc_interact.buttons_stack",
          // 오버라이드 가능한 변수
          "$scroll_size": [5, "100% - 4px"],
          // 오버라이드 가능한 변수
          "$scrolling_pane_size": ["100% - 5px", "100%"],
          // 오버라이드 가능한 변수
          "$scrolling_pane_offset": [0, 0]
        }
      }
    ]
  },

  // ==================== 닫기 버튼 ====================

  "close_button_default": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", "100%"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "bg": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100%", "100%"],
          // ?? (R,G,B,A)
          "color": [0.6, 0.1, 0.1],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 보여줄 글자
        "text": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "X",
          // ?? (R,G,B,A)
          "color": [1.0, 1.0, 1.0],
          // ?? ??
          "shadow": true,
          // ?? ?? ?
          "font_size": "large",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center"
        }
      }
    ]
  },

  // ???/?? ??
  "close_button_hover": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", "100%"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "bg": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100%", "100%"],
          // ?? (R,G,B,A)
          "color": [0.9, 0.2, 0.2],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 보여줄 글자
        "text": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "X",
          // ?? (R,G,B,A)
          "color": [1.0, 1.0, 1.0],
          // ?? ??
          "shadow": true,
          // ?? ?? ?
          "font_size": "large",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center"
        }
      }
    ]
  },

  // ???/?? ??
  "close_button_pressed": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", "100%"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "bg": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100%", "100%"],
          // ?? (R,G,B,A)
          "color": [0.4, 0.05, 0.05],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 보여줄 글자
        "text": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "X",
          // ?? (R,G,B,A)
          "color": [0.7, 0.7, 0.7],
          // ?? ??
          "shadow": true,
          // ?? ?? ?
          "font_size": "large",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center"
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "close_button@common.button": {
    // 가로/세로 크기
    "size": [30, 30],
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_exit",

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "default@npc_interact.close_button_default": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hover@npc_interact.close_button_hover": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "pressed@npc_interact.close_button_pressed": {}
      }
    ]
  },

  // ==================== 메인 대화 패널 ====================

  // 다른 템플릿을 가져와서 확장(상속)
  "student_custom@common.root_panel": {
    // 가로/세로 크기
    "size": ["100%", 150],
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [0, 0],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 오버라이드 가능한 변수
    "$dialog_background": "common.dialog_background_hollow_3",

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "bg_panel@common.common_panel": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "npc_portrait@npc_interact.npc_portrait_panel": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "dialogue_content@npc_interact.dialogue_content_panel": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "buttons@npc_interact.buttons_panel": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "close_btn@npc_interact.close_button": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 기준점에서 이동하는 거리
          "offset": [-8, 8],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 5
        }
      }
    ],

    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#student_view_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      }
    ]
  },

  // ==================== 스크린 ====================

  "npc_screen_contents_custom": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "npc_screen_contents@npc_interact.npc_screen_contents": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $is_worldbuilder)"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "student_custom@npc_interact.student_custom": {
          // 완전히 제거(공간도 없음)
          "ignored": "$is_worldbuilder"
        }
      }
    ]
  },

  // ???/?? ??
  "npc_screen": {
    // 오버라이드 가능한 변수
    "$screen_content": "npc_interact.npc_screen_contents_custom",
    // 오버라이드 가능한 변수
    "$screen_bg_content": "common.screen_background"
  }
}

이전 버전 예제 3 개

벡업

_global_variables.json 이전 버전 예제 · 벡업

필요한 부분만 참고해서 가져가세요.

// 예제: _global_variables.json
// 분류: 이전 버전 예제 / 벡업
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // RPG 스타일 NPC 대화창 변수

  // NPC 대화 텍스트 색상
  "$npc_dialog_text_color": [0.95, 0.95, 0.95],

  // NPC 이름 색상
  "$npc_name_color": [1.0, 0.9, 0.5],

  // 대화 박스 배경 색상
  "$dialogue_box_bg_color": [0.12, 0.1, 0.08],
  // 오버라이드 가능한 변수
  "$dialogue_box_border_color": [0.4, 0.3, 0.2],

  // 버튼 색상
  "$button_default_bg": [0.2, 0.15, 0.1],
  // 오버라이드 가능한 변수
  "$button_default_border": [0.4, 0.3, 0.2],
  // 오버라이드 가능한 변수
  "$button_hover_bg": [0.35, 0.25, 0.15],
  // 오버라이드 가능한 변수
  "$button_hover_border": [0.8, 0.6, 0.2],
  // 오버라이드 가능한 변수
  "$button_pressed_bg": [0.15, 0.1, 0.05],
  // 오버라이드 가능한 변수
  "$button_pressed_border": [0.3, 0.2, 0.1]
}

npc_interact_screen.json 이전 버전 예제 · 벡업

필요한 부분만 참고해서 가져가세요.

// 예제: npc_interact_screen.json
// 분류: 이전 버전 예제 / 벡업
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "npc_interact",

  /********************************************************************************
   * RPG 스타일 NPC 대화창
   * - 대화 박스를 화면 왼쪽 하단으로 이동
   * - NPC 이름과 대화를 RPG 스타일로 디자인
   ********************************************************************************/

  // ==================== 닫기 버튼 ====================

  "close_button_default": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", "100%"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "border": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100%", "100%"],
          // ?? (R,G,B,A)
          "color": [0.6, 0.1, 0.1],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100% - 4px", "100% - 4px"],
          // 기준점에서 이동하는 거리
          "offset": [2, 2],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // ?? (R,G,B,A)
          "color": [0.3, 0.05, 0.05],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      },
      {
        // ???/?? ??
        "x_text": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "✕",
          // ?? (R,G,B,A)
          "color": [0.9, 0.9, 0.9],
          // ?? ??
          "shadow": true,
          // ?? ?? ?
          "font_size": "large",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center"
        }
      }
    ]
  },

  // ???/?? ??
  "close_button_hover": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", "100%"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "border": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100%", "100%"],
          // ?? (R,G,B,A)
          "color": [0.9, 0.2, 0.2],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100% - 4px", "100% - 4px"],
          // 기준점에서 이동하는 거리
          "offset": [2, 2],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // ?? (R,G,B,A)
          "color": [0.5, 0.1, 0.1],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      },
      {
        // ???/?? ??
        "x_text": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "✕",
          // ?? (R,G,B,A)
          "color": [1.0, 1.0, 1.0],
          // ?? ??
          "shadow": true,
          // ?? ?? ?
          "font_size": "large",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center"
        }
      }
    ]
  },

  // ???/?? ??
  "close_button_pressed": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", "100%"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "border": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100%", "100%"],
          // ?? (R,G,B,A)
          "color": [0.4, 0.05, 0.05],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100% - 4px", "100% - 4px"],
          // 기준점에서 이동하는 거리
          "offset": [2, 2],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // ?? (R,G,B,A)
          "color": [0.2, 0.03, 0.03],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      },
      {
        // ???/?? ??
        "x_text": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "✕",
          // ?? (R,G,B,A)
          "color": [0.7, 0.7, 0.7],
          // ?? ??
          "shadow": true,
          // ?? ?? ?
          "font_size": "large",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center"
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "close_button@common.button": {
    // 가로/세로 크기
    "size": [30, 30],
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_exit",

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "default@npc_interact.close_button_default": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hover@npc_interact.close_button_hover": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "pressed@npc_interact.close_button_pressed": {}
      }
    ]
  },

  // ==================== 커스텀 버튼 ====================

  "student_button_default": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", "100%"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "border": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100%", "100%"],
          // ?? (R,G,B,A)
          "color": "$button_default_border",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100% - 4px", "100% - 4px"],
          // 기준점에서 이동하는 거리
          "offset": [2, 2],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // ?? (R,G,B,A)
          "color": "$button_default_bg",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      },
      {
        // ???/?? ??
        "highlight": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100% - 8px", 2],
          // 기준점에서 이동하는 거리
          "offset": [4, 4],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // ?? (R,G,B,A)
          "color": [0.3, 0.25, 0.15],
          // ???
          "alpha": 0.5,
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3
        }
      },
      {
        // 보여줄 글자
        "text": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "#button_text",
          // ?? (R,G,B,A)
          "color": [0.9, 0.9, 0.9],
          // ?? ??
          "shadow": true,
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4,
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#button_text"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "student_button_hover": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", "100%"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "border": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100%", "100%"],
          // ?? (R,G,B,A)
          "color": "$button_hover_border",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100% - 4px", "100% - 4px"],
          // 기준점에서 이동하는 거리
          "offset": [2, 2],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // ?? (R,G,B,A)
          "color": "$button_hover_bg",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      },
      {
        // ???/?? ??
        "highlight": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100% - 8px", 3],
          // 기준점에서 이동하는 거리
          "offset": [4, 4],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // ?? (R,G,B,A)
          "color": [1.0, 0.8, 0.3],
          // ???
          "alpha": 0.7,
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3
        }
      },
      {
        // 보여줄 글자
        "text": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "#button_text",
          // ?? (R,G,B,A)
          "color": [1.0, 0.9, 0.4],
          // ?? ??
          "shadow": true,
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4,
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#button_text"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "student_button_pressed": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", "100%"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "border": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100%", "100%"],
          // ?? (R,G,B,A)
          "color": "$button_pressed_border",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // ???/?? ??
        "background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100% - 4px", "100% - 4px"],
          // 기준점에서 이동하는 거리
          "offset": [2, 2],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // ?? (R,G,B,A)
          "color": "$button_pressed_bg",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      },
      {
        // 보여줄 글자
        "text": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "#button_text",
          // ?? (R,G,B,A)
          "color": [0.7, 0.7, 0.7],
          // ?? ??
          "shadow": true,
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4,
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#button_text"
            }
          ]
        }
      }
    ]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "student_button_custom@npc_interact.student_button": {
    // 가로/세로 크기
    "size": ["100% - 4px", 35],
    // 오버라이드 가능한 변수
    "$default_button_content": "npc_interact.student_button_default",
    // 오버라이드 가능한 변수
    "$hover_button_content": "npc_interact.student_button_hover",
    // 오버라이드 가능한 변수
    "$pressed_button_content": "npc_interact.student_button_pressed"
  },

  // ==================== 커스텀 대화 패널 ====================

  "student_custom_dialog": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", "100%c"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "student_custom_dialog_stack_panel@npc_interact.student_custom_dialog_stack_panel": {}
      }
    ]
  },

  // ???/?? ??
  "student_custom_dialog_stack_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": ["100%", "100%c"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "top_padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": ["100%", 8]
        }
      },
      {
        // ???/?? ??
        "npc_name_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": ["100%", "100%c"],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "name_tag_border": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": ["100%c + 20px", 28],
                // ?? (R,G,B,A)
                "color": "$button_hover_border",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "name_tag_bg": {
                      // 이미지 표시
                      "type": "image",
                      // 사용할 이미지 경로
                      "texture": "textures/ui/White",
                      // 가로/세로 크기
                      "size": ["100% - 4px", "100% - 4px"],
                      // 기준점에서 이동하는 거리
                      "offset": [2, 2],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // ?? (R,G,B,A)
                      "color": "$button_default_bg",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "npc_name": {
                            // 글자 표시
                            "type": "label",
                            // 보여줄 글자
                            "text": "#title_text",
                            // ?? (R,G,B,A)
                            "color": "$npc_name_color",
                            // ?? ??
                            "shadow": true,
                            // ?? ?? ?
                            "font_size": "normal",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "center",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "center",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 3,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              {
                                // 가져올 값 이름
                                "binding_name": "#title_text",
                                // 게임이 주는 전역 값 연결
                                "binding_type": "global"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "name_padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": ["100%", 8]
        }
      },
      {
        // ???/?? ??
        "text_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": ["100%", "100%c"],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "message_label": {
                // 글자 표시
                "type": "label",
                // 가로/세로 크기
                "size": ["100% - 16px", "default"],
                // 기준점에서 이동하는 거리
                "offset": [8, 0],
                // 보여줄 글자
                "text": "#dialogtext",
                // ?? (R,G,B,A)
                "color": "$npc_dialog_text_color",
                // ?? ??
                "shadow": true,
                // ??/?? ?
                "line_padding": 3,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#dialogtext"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "middle_padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": ["100%", 8]
        }
      },
      {
        // ???/?? ??
        "buttons": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": ["102%", "100%cm"],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "actions": {
                // 격자 컨테이너: 칸칸이 배치
                "type": "grid",
                // 가로/세로 크기
                "size": ["fill", "default"],
                // ??? ?? ?
                "grid_item_template": "npc_interact.student_button_custom",
                // ??? ?? ?
                "grid_dimension_binding": "#student_button_grid_dimensions",
                // 목록 이름
                "collection_name": "student_buttons_collection",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#student_button_grid_dimensions"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "bottom_padding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": ["100%", 8]
        }
      }
    ]
  },

  // ==================== NPC 초상화 패널 (왼쪽 하단) ====================

  "npc_portrait_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [180, 220],
    // 기준점에서 이동하는 거리
    "offset": [20, -20],
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_left",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 프레임 외곽선
        "frame_border": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100%", "100%"],
          // ?? (R,G,B,A)
          "color": "$dialogue_box_border_color",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 프레임 배경
        "frame_bg": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100% - 6px", "100% - 6px"],
          // 기준점에서 이동하는 거리
          "offset": [3, 3],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // ?? (R,G,B,A)
          "color": [0.15, 0.12, 0.1],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      },
      {
        // NPC 모델 배경창
        "npc_model_window": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100% - 12px", "100% - 42px"],
          // 기준점에서 이동하는 거리
          "offset": [6, 6],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // ???
          "alpha": 0.3,
          // ?? (R,G,B,A)
          "color": [0.2, 0.2, 0.3],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3
        }
      },
      {
        // NPC 실제 모델
        "npc_model": {
          // 특수 렌더러(그라디언트/플레이어 등)
          "type": "custom",
          // 커스텀 렌더러 종류
          "renderer": "live_player_renderer",
          // 가로/세로 크기
          "size": [150, 180],
          // 기준점에서 이동하는 거리
          "offset": [15, 15],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4,
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 애니메이션 목록
          "anims": [
            "@common.screen_exit_size_animation_push",
            "@common.screen_exit_size_animation_pop",
            "@common.screen_entrance_size_animation_push",
            "@common.screen_entrance_size_animation_pop"
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "npc_renderer",
              // 계산식/참조 값
              "source_property_name": "#using_npc_renderer",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 하단 이름 영역
        "name_area": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": ["100% - 10px", 25],
          // 기준점에서 이동하는 거리
          "offset": [5, -5],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 5,

          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "name_bg": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": ["100%", "100%"],
                // ?? (R,G,B,A)
                "color": "$button_hover_border",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            },
            {
              // ???/?? ??
              "name_bg_inner": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": ["100% - 4px", "100% - 4px"],
                // 기준점에서 이동하는 거리
                "offset": [2, 2],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // ?? (R,G,B,A)
                "color": "$button_default_bg",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2
              }
            },
            {
              // ???/?? ??
              "name_text": {
                // 글자 표시
                "type": "label",
                // 보여줄 글자
                "text": "#title_text",
                // ?? (R,G,B,A)
                "color": "$npc_name_color",
                // ?? ??
                "shadow": true,
                // ?? ?? ?
                "font_size": "small",
                // 기준점(어디에서 시작할지)
                "anchor_from": "center",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "center",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#title_text",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ==================== 커스텀 스크린 컨텐츠 (NPC 이미지 + 대화창) ====================

  "npc_screen_contents_custom": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "npc_screen_contents@npc_interact.npc_screen_contents": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $is_worldbuilder)"
        }
      },
      {
        // NPC 초상화 (왼쪽 하단)
        "npc_portrait@npc_interact.npc_portrait_panel": {
          // 완전히 제거(공간도 없음)
          "ignored": "$is_worldbuilder"
        }
      },
      {
        // 대화창 (NPC 이미지 오른쪽)
        "student_custom@common.root_panel": {
          // 가로/세로 크기
          "size": ["50%", 220],
          // 기준점에서 이동하는 거리
          "offset": [210, -20],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left",
          // 오버라이드 가능한 변수
          "$dialog_background": "common.dialog_background_hollow_3",
          // 완전히 제거(공간도 없음)
          "ignored": "$is_worldbuilder",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10,

          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 대화 박스 외곽선
              "box_border": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": ["100%", "100%"],
                // ?? (R,G,B,A)
                "color": "$dialogue_box_border_color",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            },
            {
              // 대화 박스 배경
              "box_background": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": ["100% - 6px", "100% - 6px"],
                // 기준점에서 이동하는 거리
                "offset": [3, 3],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // ?? (R,G,B,A)
                "color": "$dialogue_box_bg_color",
                // ???
                "alpha": 0.95,
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2
              }
            },
            {
              // 상단 하이라이트
              "box_highlight": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/White",
                // 가로/세로 크기
                "size": ["100% - 12px", 2],
                // 기준점에서 이동하는 거리
                "offset": [6, 6],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // ?? (R,G,B,A)
                "color": [0.3, 0.25, 0.15],
                // ???
                "alpha": 0.6,
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3
              }
            },
            {
              // 닫기 버튼 (오른쪽 상단)
              "close_btn@npc_interact.close_button": {
                // 기준점에서 이동하는 거리
                "offset": [-10, 10],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_right",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 5
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "scrolling_panel@common.scrolling_panel": {
                // 가로/세로 크기
                "size": ["100% - 20px", "100% - 20px"],
                // 기준점에서 이동하는 거리
                "offset": [10, 10],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4,
                // 오버라이드 가능한 변수
                "$scrolling_content": "npc_interact.student_custom_dialog",
                // 오버라이드 가능한 변수
                "$show_background": false,
                // 오버라이드 가능한 변수
                "$scroll_size": ["5px", "100% - 4px"],
                // 오버라이드 가능한 변수
                "$scroll_bar_left_padding_size": [1, 0]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#student_view_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
            }
          ]
        }
      }
    ]
  },

  // ==================== 메인 스크린 오버라이드 ====================

  "npc_screen": {
    // 오버라이드 가능한 변수
    "$screen_content": "npc_interact.npc_screen_contents_custom",
    // 오버라이드 가능한 변수
    "$screen_bg_content": "common.screen_background"
  }
}

소형 npc ui

npc_interact_screen.json 이전 버전 예제 · 소형 npc ui

필요한 부분만 참고해서 가져가세요.

// 예제: npc_interact_screen.json
// 분류: 이전 버전 예제 / 소형 npc ui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "npc_interact",

  /********************************************************************************
   * RPG 스타일 NPC 대화창
   * 레이아웃: [NPC 이미지] [제목 + 대사] [버튼들]
   ********************************************************************************/

  // ==================== NPC 초상화 (왼쪽) ====================

  "npc_portrait": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [120, 140],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 프레임
        "frame": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100%", "100%"],
          // ?? (R,G,B,A)
          "color": [0.3, 0.3, 0.3],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
        }
      },
      {
        // 배경
        "bg": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": ["100% - 4px", "100% - 4px"],
          // 기준점에서 이동하는 거리
          "offset": [2, 2],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // ?? (R,G,B,A)
          "color": [0.15, 0.15, 0.15],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2
        }
      },
      {
        // NPC 모델
        "npc_model": {
          // 특수 렌더러(그라디언트/플레이어 등)
          "type": "custom",
          // 커스텀 렌더러 종류
          "renderer": "live_player_renderer",
          // 가로/세로 크기
          "size": ["100% - 8px", "100% - 8px"],
          // 기준점에서 이동하는 거리
          "offset": [4, 4],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // ????? ?? ?
          "animation_reset_name": "screen_animation_reset",
          // 애니메이션 목록
          "anims": [
            "@common.screen_exit_size_animation_push",
            "@common.screen_exit_size_animation_pop",
            "@common.screen_entrance_size_animation_push",
            "@common.screen_entrance_size_animation_pop"
          ]
        }
      }
    ]
  },

  // ==================== 대화 내용 영역 (중앙) ====================

  "dialogue_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["fill", "100%"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "stack": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 가로/세로 크기
          "size": ["100%", "100%"],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "padding_top": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": ["100%", 8]
              }
            },
            {
              // 제목
              "title": {
                // 글자 표시
                "type": "label",
                // 보여줄 글자
                "text": "#title_text",
                // ?? (R,G,B,A)
                "color": [1.0, 1.0, 1.0],
                // ?? ?? ?
                "font_size": "large",
                // ?? ??
                "shadow": true,
                // 가로/세로 크기
                "size": ["100%", "default"],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#title_text",
                    // 게임이 주는 전역 값 연결
                    "binding_type": "global"
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "padding_middle": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": ["100%", 4]
              }
            },
            {
              // 대사 텍스트
              "dialogue": {
                // 글자 표시
                "type": "label",
                // 보여줄 글자
                "text": "#dialogtext",
                // ?? (R,G,B,A)
                "color": [0.9, 0.9, 0.9],
                // ?? ??
                "shadow": true,
                // 가로/세로 크기
                "size": ["100%", "default"],
                // ??/?? ?
                "line_padding": 2,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 가져올 값 이름
                    "binding_name": "#dialogtext"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ==================== 버튼 영역 (오른쪽) ====================

  "button_area": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [140, "100%"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "padding_top": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": ["100%", 10]
        }
      },
      {
        // ???/?? ??
        "buttons_grid": {
          // 격자 컨테이너: 칸칸이 배치
          "type": "grid",
          // 가로/세로 크기
          "size": ["100%", "100%c"],
          // ??? ?? ?
          "grid_item_template": "npc_interact.student_button",
          // ??? ?? ?
          "grid_dimension_binding": "#student_button_grid_dimensions",
          // 목록 이름
          "collection_name": "student_buttons_collection",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#student_button_grid_dimensions"
            }
          ]
        }
      }
    ]
  },

  // ==================== 메인 대화 컨테이너 ====================

  // 다른 템플릿을 가져와서 확장(상속)
  "student_custom@common.root_panel": {
    // 가로/세로 크기
    "size": ["80%", 160],
    // ?? ?? ?
    "max_size": [800, 160],
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [0, -20],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 오버라이드 가능한 변수
    "$dialog_background": "common.dialog_background_hollow_3",

    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "common_panel@common.common_panel": {}
      },
      {
        // 가로 레이아웃
        "horizontal_layout": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": ["100% - 16px", "100% - 16px"],
          // 기준점에서 이동하는 거리
          "offset": [8, 8],
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "stack": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": ["100%", "100%"],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "npc_portrait@npc_interact.npc_portrait": {}
                  },
                  {
                    // ???/?? ??
                    "spacing_1": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [10, "100%"]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "dialogue_content@npc_interact.dialogue_content": {}
                  },
                  {
                    // ???/?? ??
                    "spacing_2": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [10, "100%"]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "button_area@npc_interact.button_area": {}
                  }
                ]
              }
            }
          ]
        }
      }
    ],

    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#student_view_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      }
    ]
  },

  // ==================== 스크린 ====================

  "npc_screen_contents_custom": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "npc_screen_contents@npc_interact.npc_screen_contents": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $is_worldbuilder)"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "student_custom@npc_interact.student_custom": {
          // 완전히 제거(공간도 없음)
          "ignored": "$is_worldbuilder"
        }
      }
    ]
  },

  // ???/?? ??
  "npc_screen": {
    // 오버라이드 가능한 변수
    "$screen_content": "npc_interact.npc_screen_contents_custom",
    // 오버라이드 가능한 변수
    "$screen_bg_content": "common.screen_background"
  }
}

추가 HUD 예제 3 개

단일 파일

hud_screen (1).json 추가 HUD 예제 · 단일 파일

필요한 부분만 참고해서 가져가세요.

// 예제: hud_screen (1).json
// 분류: 추가 HUD 예제 / 단일 파일
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
"progress_bar":{
    // 오버라이드 가능한 변수
    "$update_text": "update_bar:",// Needed to update the effected bar filling quantity.
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [100, 10],
    // 오버라이드 가능한 변수
    "$max_value": 50.0,
    // ??? ??
    "clip_direction": "right",
    // ?? ??
    "clip_pixelperfect": false,
    // 이 컨트롤 안에서 쓰는 임시 저장소
    "property_bag": {// Changing the texture path via 'property_bag'
      "#texture_0": "textures/ui/Black",// 0
      "#texture_1": "textures/ui/White"// 1
    },
    // 게임 값과 연결하는 규칙 목록
    "bindings":[
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "progress_bar_control",
        // 계산식/참조 값
        "source_property_name": "#preserved_text",
        // 결과가 들어갈 속성
        "target_property_name": "#preserved_text"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#preserved_text - $update_text)",
        // 결과가 들어갈 속성
        "target_property_name": "#value"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('#texture_' + (#preserved_text - ($update_text + #value + ',')))",// Changing the texture path only if you send a title with the $update_text and the #value including the texture path number, For example: 'update_bar:20,0' you need to include the ',' there.
        // 결과가 들어갈 속성
        "target_property_name": "#texture"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(($max_value - #value) / $max_value)",
        // 결과가 들어갈 속성
        "target_property_name": "#clip_ratio"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls":[
      {
        // ???/?? ??
        "progress_bar_control":{
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 게임 값과 연결하는 규칙 목록
          "bindings":[
            {
              // 가져올 값 이름
              "binding_name": "#hud_title_text_string"
            },
            {
              // 가져올 값 이름
              "binding_name": "#hud_title_text_string",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#preserved_text",
              // ?? ???
              "binding_condition": "visibility_changed"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not ('@' + #hud_title_text_string = '@' + #preserved_text) and not (('@' + #hud_title_text_string - $update_text) = '@' + #hud_title_text_string))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  }

hud_screen(4).json 추가 HUD 예제 · 단일 파일

필요한 부분만 참고해서 가져가세요.

// 예제: hud_screen(4).json
// 분류: 추가 HUD 예제 / 단일 파일
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// 이 파일의 이름표(다른 파일에서 @로 참조)
	"namespace": "hud",

	//---------------------------------------------------------------------------
	// Hud Screen
	//---------------------------------------------------------------------------
	"hud_player_renderer": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": [15, 15],

		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"hud_player": {
					// 특수 렌더러(그라디언트/플레이어 등)
					"type": "custom",
					// 커스텀 렌더러 종류
					"renderer": "hud_player_renderer",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 1,
					// ????? ?? ?
					"animation_reset_name": "screen_animation_reset",
					// 애니메이션 목록
					"anims": [
						"@common.screen_exit_size_animation_push",
						"@common.screen_exit_size_animation_pop",
						"@common.screen_entrance_size_animation_push",
						"@common.screen_entrance_size_animation_pop"
					],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#paper_doll_visible",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"hotbar_renderer": {
		// 특수 렌더러(그라디언트/플레이어 등)
		"type": "custom",
		// 오버라이드 가능한 변수
		"$hotbar_renderer_size|default": [20, 22],
		// 커스텀 렌더러 종류
		"renderer": "hotbar_renderer",
		// 가로/세로 크기
		"size": "$hotbar_renderer_size",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 목록 이름
				"binding_collection_name": "$hotbar_collection_name",
				// 목록 인덱스/현재 항목 정보 제공
				"binding_type": "collection_details"
			},
			{
				// 가져올 값 이름
				"binding_name": "#hotbar_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible"
			}
		],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"hotbar_slot_image@hotbar_slot_image": {
					// 오버라이드 가능한 변수
					"$hotbar_slot_image_size": "$hotbar_renderer_size"
				}
			}
		]
	},

	// ???/?? ??
	"cooldown_renderer": {
		// 특수 렌더러(그라디언트/플레이어 등)
		"type": "custom",
		// 커스텀 렌더러 종류
		"renderer": "hotbar_cooldown_renderer",
		// 가로/세로 크기
		"size": [20, 22],
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 목록 이름
				"binding_collection_name": "$hotbar_collection_name",
				// 목록 인덱스/현재 항목 정보 제공
				"binding_type": "collection_details"
			}
		]
	},

	// ???/?? ??
	"heart_renderer": {
		// 특수 렌더러(그라디언트/플레이어 등)
		"type": "custom",
		// 가로/세로 크기
		"size": [1, 1],
		// 커스텀 렌더러 종류
		"renderer": "heart_renderer",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#show_survival_ui",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible"
			}
		]
	},

	// ???/?? ??
	"horse_heart_renderer": {
		// 특수 렌더러(그라디언트/플레이어 등)
		"type": "custom",
		// 가로/세로 크기
		"size": [1, 1],
		// 커스텀 렌더러 종류
		"renderer": "horse_heart_renderer",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1
	},

	// ???/?? ??
	"armor_renderer": {
		// 특수 렌더러(그라디언트/플레이어 등)
		"type": "custom",
		// 가로/세로 크기
		"size": [1, 1],
		// 커스텀 렌더러 종류
		"renderer": "armor_renderer",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#is_armor_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible"
			}
		]
	},

	// ???/?? ??
	"exp_progress_bar_and_hotbar": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": ["100%c", 31],
		// 기준점(어디에서 시작할지)
		"anchor_from": "bottom_middle",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "bottom_middle",
		// 기준점에서 이동하는 거리
		"offset": "$xp_control_offset",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"resizing_xp_bar_with_hotbar": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": ["100%c", 5],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"empty_progress_bar@empty_progress_bar": {
								// 가로/세로 크기
								"size": ["100%c", 5],
								// 겹치는 순서(숫자 클수록 위)
								"layer": 1,
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// 다른 템플릿을 가져와서 확장(상속)
										"full_progress_bar@full_progress_bar": {
											// 가로/세로 크기
											"size": ["100%c + 10px", 5],
											// 겹치는 순서(숫자 클수록 위)
											"layer": 2,
											// 이 안에 들어가는 부품 목록
											"controls": [
												{
													// 다른 템플릿을 가져와서 확장(상속)
													"progress_bar_nub@progress_bar_nub": {
														// 가로/세로 크기
														"size": [
															"100%c - 10px",
															5
														],
														// ?? ?? ?
														"max_size": [190, 5],
														// 겹치는 순서(숫자 클수록 위)
														"layer": 3,
														// 이 안에 들어가는 부품 목록
														"controls": [
															{
																// 다른 템플릿을 가져와서 확장(상속)
																"horse_jump_rend@horse_jump_renderer": {
																	// 기준점(어디에서 시작할지)
																	"anchor_from": "bottom_middle",
																	// 붙일 위치(어디에 놓을지)
																	"anchor_to": "bottom_middle",
																	// 가로/세로 크기
																	"size": [
																		"100%c",
																		5
																	],
																	// 겹치는 순서(숫자 클수록 위)
																	"layer": 7,
																	// 이 안에 들어가는 부품 목록
																	"controls": [
																		{
																			// 다른 템플릿을 가져와서 확장(상속)
																			"dash_rend@dash_renderer": {
																				// 기준점(어디에서 시작할지)
																				"anchor_from": "bottom_middle",
																				// 붙일 위치(어디에 놓을지)
																				"anchor_to": "bottom_middle",
																				// 가로/세로 크기
																				"size": [
																					"100%c",
																					5
																				],
																				// 겹치는 순서(숫자 클수록 위)
																				"layer": 7,
																				// 이 안에 들어가는 부품 목록
																				"controls": [
																					{
																						// 다른 템플릿을 가져와서 확장(상속)
																						"hotbar@hotbar_chooser": {
																							// 기준점에서 이동하는 거리
																							"offset": [
																								4,
																								16
																							]
																						}
																					}
																				]
																			}
																		}
																	]
																}
															}
														]
													}
												}
											]
										}
									}
								]
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"progress_text_label@progress_text_label": {
								// 기준점에서 이동하는 거리
								"offset": [0, 0],
								// 겹치는 순서(숫자 클수록 위)
								"layer": 7
							}
						}
					],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#hotbar_with_xp_bar",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			// For when we hide the XP bar in Creative Move we still want to display the HUD
			{
				// ???/?? ??
				"resizing_hotbar_no_xp_bar": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": ["100%c", 5],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"horse_jump_rend@horse_jump_renderer": {
								// 기준점(어디에서 시작할지)
								"anchor_from": "bottom_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "bottom_middle",
								// 가로/세로 크기
								"size": ["100%c", 5],
								// 겹치는 순서(숫자 클수록 위)
								"layer": 7,
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#hotbar_no_xp_bar",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#visible"
									}
								],
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// 다른 템플릿을 가져와서 확장(상속)
										"dash_rend@dash_renderer": {
											// 기준점(어디에서 시작할지)
											"anchor_from": "bottom_middle",
											// 붙일 위치(어디에 놓을지)
											"anchor_to": "bottom_middle",
											// 가로/세로 크기
											"size": ["100%c", 5],
											// 겹치는 순서(숫자 클수록 위)
											"layer": 7,
											// 이 안에 들어가는 부품 목록
											"controls": [
												{
													// 다른 템플릿을 가져와서 확장(상속)
													"hotbar@hotbar_chooser": {
														// 기준점에서 이동하는 거리
														"offset": [4, 16]
													}
												}
											]
										}
									}
								]
							}
						}
					]
				}
			},
			{
				// ???/?? ??
				"item_text_factory": {
					// 가로/세로 크기
					"size": [100, 10],
					// 리스트를 자동으로 생성하는 공장
					"type": "factory",
					// 팩토리 템플릿 매핑
					"control_ids": {
						// ??? ?? ?
						"item_text": "@hud.item_name_text",
						// ??? ?? ?
						"jukebox_text": "@hud.jukebox_popup_text"
					}
				}
			}
		]
	},

	// redo layout for exp and progress bar to work with the binding trick
	// without touching classic
	"exp_progress_bar_and_hotbar_pocket": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": ["100%", "100%"],
		// 기준점(어디에서 시작할지)
		"anchor_from": "bottom_middle",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "bottom_middle",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"resizing_xp_bar_with_hotbar": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": ["100%", 5],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_middle",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_middle",
					// ??/?? ?
					"use_anchored_offset": true,
					// 이 컨트롤 안에서 쓰는 임시 저장소
					"property_bag": {
						// ???/??? ?
						"#anchored_offset_value_y": 0.0,
						// ???/??? ?
						"#size_binding_x": 0.0,
						// ???/??? ?
						"#size_binding_y": 0.0
					},
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"empty_progress_bar@empty_progress_bar": {
								// 가로/세로 크기
								"size": ["100%", "100%"],
								// 겹치는 순서(숫자 클수록 위)
								"layer": 1,
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// 다른 템플릿을 가져와서 확장(상속)
										"full_progress_bar@full_progress_bar": {
											// 가로/세로 크기
											"size": ["100%", "100%"],
											// 겹치는 순서(숫자 클수록 위)
											"layer": 2,
											// 이 안에 들어가는 부품 목록
											"controls": [
												{
													// 다른 템플릿을 가져와서 확장(상속)
													"progress_bar_nub@progress_bar_nub": {
														// 가로/세로 크기
														"size": ["99%", "100%"],
														// 겹치는 순서(숫자 클수록 위)
														"layer": 3
													}
												}
											]
										}
									}
								]
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"progress_text_label@progress_text_label": {
								// 기준점에서 이동하는 거리
								"offset": [0, 0],
								// 겹치는 순서(숫자 클수록 위)
								"layer": 7
							}
						}
					],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#hotbar_with_xp_bar",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						},
						{
							// 가져올 값 이름
							"binding_name": "#exp_bar_and_text_offset_y",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#anchored_offset_value_y"
						},
						{
							// 가져올 값 이름
							"binding_name": "#exp_bar_size_x",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#size_binding_x"
						},
						{
							// 가져올 값 이름
							"binding_name": "#exp_bar_size_y",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#size_binding_y"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"hotbar_panel@hotbar_panel_pocket": {}
			},
			{
				// ???/?? ??
				"item_text": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 기준점에서 이동하는 거리
					"offset": [0, 0],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_middle",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_middle",
					// ??/?? ?
					"use_anchored_offset": true,
					// 이 컨트롤 안에서 쓰는 임시 저장소
					"property_bag": {
						// ???/??? ?
						"#anchored_offset_value_y": 0.0
					},
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#exp_bar_and_text_offset_y",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#anchored_offset_value_y"
						}
					],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"item_text_factory": {
								// 가로/세로 크기
								"size": [100, 10],
								// 리스트를 자동으로 생성하는 공장
								"type": "factory",
								// 팩토리 템플릿 매핑
								"control_ids": {
									// ??? ?? ?
									"item_text": "@hud.item_name_text_root",
									// ??? ?? ?
									"jukebox_text": "@hud.jukebox_popup_text"
								}
							}
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"horse_jump_rend@horse_jump_renderer": {
					// 겹치는 순서(숫자 클수록 위)
					"layer": 7,
					// 가로/세로 크기
					"size": ["100%", 5],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_middle",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_middle",
					// ??/?? ?
					"use_anchored_offset": true,
					// 이 컨트롤 안에서 쓰는 임시 저장소
					"property_bag": {
						// ???/??? ?
						"#anchored_offset_value_y": 0.0,
						// ???/??? ?
						"#size_binding_x": 0.0,
						// ???/??? ?
						"#size_binding_y": 0.0
					},
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#exp_bar_and_text_offset_y",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#anchored_offset_value_y"
						},
						{
							// 가져올 값 이름
							"binding_name": "#exp_bar_size_x",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#size_binding_x"
						},
						{
							// 가져올 값 이름
							"binding_name": "#exp_bar_size_y",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#size_binding_y"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"dash_rend@dash_renderer": {
					// 겹치는 순서(숫자 클수록 위)
					"layer": 7,
					// 가로/세로 크기
					"size": ["100%", 5],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_middle",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_middle",
					// ??/?? ?
					"use_anchored_offset": true,
					// 이 컨트롤 안에서 쓰는 임시 저장소
					"property_bag": {
						// ???/??? ?
						"#anchored_offset_value_y": 0.0,
						// ???/??? ?
						"#size_binding_x": 0.0,
						// ???/??? ?
						"#size_binding_y": 0.0
					},
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#exp_bar_and_text_offset_y",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#anchored_offset_value_y"
						},
						{
							// 가져올 값 이름
							"binding_name": "#exp_bar_size_x",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#size_binding_x"
						},
						{
							// 가져올 값 이름
							"binding_name": "#exp_bar_size_y",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#size_binding_y"
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"full_progress_bar": {
		// 이미지 표시
		"type": "image",
		// 사용할 이미지 경로
		"texture": "textures/ui/experiencebarfull",
		// ??? ??
		"clip_direction": "left",
		// ?? ??
		"clip_pixelperfect": false,
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#exp_progress",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#clip_ratio",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			}
		]
	},

	// ???/?? ??
	"empty_progress_bar": {
		// 이미지 표시
		"type": "image",
		// 사용할 이미지 경로
		"texture": "textures/ui/experiencebarempty"
	},

	// ???/?? ??
	"progress_bar_nub": {
		// 이미지 표시
		"type": "image",
		// 사용할 이미지 경로
		"texture": "textures/ui/experiencenub",
		// 이미지 반복 여부
		"tiled": "x"
	},

	// ???/?? ??
	"progress_text_label": {
		// 글자 표시
		"type": "label",
		// ?? ??
		"shadow": true,
		// 보여줄 글자
		"text": "#level_number",
		// ?? (R,G,B,A)
		"color": "$experience_text_color",
		// 기준점(어디에서 시작할지)
		"anchor_from": "top_middle",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "bottom_middle",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#level_number",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			},
			{
				// 가져올 값 이름
				"binding_name": "#level_number_visible",
				// 게임이 주는 전역 값 연결
				"binding_type": "global",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible"
			}
		]
	},

	// ???/?? ??
	"horse_jump_renderer": {
		// 특수 렌더러(그라디언트/플레이어 등)
		"type": "custom",
		// 커스텀 렌더러 종류
		"renderer": "horse_jump_renderer"
	},

	// ???/?? ??
	"dash_renderer": {
		// 특수 렌더러(그라디언트/플레이어 등)
		"type": "custom",
		// 커스텀 렌더러 종류
		"renderer": "dash_renderer"
	},

	// ???/?? ??
	"hunger_renderer": {
		// 특수 렌더러(그라디언트/플레이어 등)
		"type": "custom",
		// 가로/세로 크기
		"size": [1, 1],
		// 커스텀 렌더러 종류
		"renderer": "hunger_renderer",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#show_survival_ui",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible"
			}
		]
	},

	// ???/?? ??
	"bubbles_renderer": {
		// 특수 렌더러(그라디언트/플레이어 등)
		"type": "custom",
		// 가로/세로 크기
		"size": [1, 1],
		// 커스텀 렌더러 종류
		"renderer": "bubbles_renderer",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1
	},

	// ???/?? ??
	"mob_effects_renderer": {
		// 특수 렌더러(그라디언트/플레이어 등)
		"type": "custom",
		// 커스텀 렌더러 종류
		"renderer": "mob_effects_renderer",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1
	},

	// ???/?? ??
	"vignette_renderer": {
		// 특수 렌더러(그라디언트/플레이어 등)
		"type": "custom",
		// 커스텀 렌더러 종류
		"renderer": "vignette_renderer",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 0
	},

	// ???/?? ??
	"editor_gizmo_renderer": {
		// 특수 렌더러(그라디언트/플레이어 등)
		"type": "custom",
		// 커스텀 렌더러 종류
		"renderer": "editor_gizmo_renderer",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1
	},

	// ???/?? ??
	"cursor_renderer": {
		// 특수 렌더러(그라디언트/플레이어 등)
		"type": "custom",
		// 가로/세로 크기
		"size": [16, 16],
		// 커스텀 렌더러 종류
		"renderer": "cursor_renderer",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 4
	},

	// ???/?? ??
	"progress_indicator_renderer": {
		// 특수 렌더러(그라디언트/플레이어 등)
		"type": "custom",
		// 커스텀 렌더러 종류
		"renderer": "progress_indicator_renderer",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 4
	},

	// ???/?? ??
	"camera_renderer": {
		// 특수 렌더러(그라디언트/플레이어 등)
		"type": "custom",
		// 커스텀 렌더러 종류
		"renderer": "camera_renderer",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1
	},

	// ???/?? ??
	"editor_volume_highlight_renderer": {
		// 특수 렌더러(그라디언트/플레이어 등)
		"type": "custom",
		// 커스텀 렌더러 종류
		"renderer": "editor_volume_highlight_renderer",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 4
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"hotbar_hud_item_icon@common.item_renderer": {
		// 오버라이드 가능한 변수
		"$item_collection_name": "$hotbar_collection_name",
		// 이 컨트롤 안에서 쓰는 임시 저장소
		"property_bag": {
			// ?? ??
			"force_update": true
		}
	},

	// ???/?? ??
	"elipses_image": {
		// 이미지 표시
		"type": "image",
		// 오버라이드 가능한 변수
		"$elipses_image_size|default": [14, 4],
		// 사용할 이미지 경로
		"texture": "textures/ui/elipses",
		// 기준점(어디에서 시작할지)
		"anchor_from": "center",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "center",
		// 가로/세로 크기
		"size": "$elipses_image_size",
		// 기준점에서 이동하는 거리
		"offset": [0.0, 0.5],
		// 겹치는 순서(숫자 클수록 위)
		"layer": 30,
		// ???
		"alpha": 0.65
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"bound_button_label@button_label": {
		// 보여줄 글자
		"text": "$label_bind_name",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "$label_bind_name",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			}
		]
	},

	// ???/?? ??
	"default_borderless_button_layout": {
		// 이미지 표시
		"type": "image",
		// 사용할 이미지 경로
		"texture": "textures/ui/button_borderless_light",
		// ???
		"alpha": 0.45
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"hover_borderless_button_layout@default_borderless_button_layout": {
		// 사용할 이미지 경로
		"texture": "textures/ui/button_borderless_lighthover"
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"pressed_borderless_button_layout@default_borderless_button_layout": {
		// 사용할 이미지 경로
		"texture": "textures/ui/button_borderless_lightpressed"
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"borderless_button@common.button": {
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"default@default_borderless_button_layout": {}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"hover@hover_borderless_button_layout": {}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"pressed@pressed_borderless_button_layout": {}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"elipses@elipses_image": {}
			}
		]
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"hotbar_elipses_button@borderless_button": {
		// 오버라이드 가능한 변수
		"$pressed_button_name": "button.hotbar_inventory_button",
		// 오버라이드 가능한 변수
		"$hotbar_elipses_button_size|default": [16, 16],
		// 기준점(어디에서 시작할지)
		"anchor_from": "center",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "center",
		// 가로/세로 크기
		"size": "$hotbar_elipses_button_size",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 3,
		// 포커스 가능 여부
		"focus_enabled": false,
		// 처음 포커스 우선순위
		"default_focus_precedence": 10,
		// 입력 키/버튼과 동작 연결
		"button_mappings": [
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.menu_select",
				// 어떤 동작을 실행할지
				"to_button_id": "$pressed_button_name",
				// 입력 시점(pressed 등)
				"mapping_type": "pressed"
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#inventory_touch_button",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			}
		]
	},

	// ???/?? ??
	"start_cap_image": {
		// 이미지 표시
		"type": "image",
		// 오버라이드 가능한 변수
		"$cap_image_size|default": [1, 22],
		// 사용할 이미지 경로
		"texture": "textures/ui/hotbar_start_cap",
		// 기준점(어디에서 시작할지)
		"anchor_from": "top_left",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "top_left",
		// 가로/세로 크기
		"size": "$cap_image_size",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 4,
		// ???
		"alpha": 0.65,
		// 보이기/숨기기(공간 유지)
		"visible": true
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"end_cap_image@start_cap_image": {
		// 사용할 이미지 경로
		"texture": "textures/ui/hotbar_end_cap"
	},

	// ???/?? ??
	"hotbar_start_cap": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 오버라이드 가능한 변수
		"$cap_size|default": [1, 22],
		// 가로/세로 크기
		"size": "$cap_size",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"start_cap_image@start_cap_image": {
					// 오버라이드 가능한 변수
					"$cap_image_size": "$cap_size"
				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#hotbar_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible"
			}
		]
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"hotbar_end_cap@hotbar_start_cap": {
		// 오버라이드 가능한 변수
		"$cap_size|default": [1, 22],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"end_cap_image@end_cap_image": {
					// 오버라이드 가능한 변수
					"$cap_image_size": "$cap_size"
				}
			}
		]
	},

	// ???/?? ??
	"heart_image": {
		// 이미지 표시
		"type": "image",
		// 사용할 이미지 경로
		"texture": "textures/ui/heart_background",
		// 가로/세로 크기
		"size": [9, 9],
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// ???
		"alpha": 0.65
	},

	// ???/?? ??
	"hotbar_slot_image": {
		// 오버라이드 가능한 변수
		"$hotbar_slot_image_size|default": [20, 22],
		// 이미지 표시
		"type": "image",
		// 기준점에서 이동하는 거리
		"offset": [0, 0],
		// 가로/세로 크기
		"size": "$hotbar_slot_image_size",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// ???
		"alpha": 1
	},

	// ???/?? ??
	"hotbar_slot_selected_image": {
		// 이미지 표시
		"type": "image",
		// 사용할 이미지 경로
		"texture": "textures/ui/selected_hotbar_slot",
		// 가로/세로 크기
		"size": [24, 24],
		// 겹치는 순서(숫자 클수록 위)
		"layer": 8,
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#slot_selected",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible",
				// 목록 데이터를 반복 연결
				"binding_type": "collection",
				// 목록 이름
				"binding_collection_name": "$hotbar_collection_name"
			}
		]
	},

	// ???/?? ??
	"gui_hotbar_slot_button_prototype": {
		// 클릭 가능한 버튼
		"type": "button",

		// 오버라이드 가능한 변수
		"$hotbar_select|default": "button.hotbar_select",

		// 오버라이드 가능한 변수
		"$focus_id|default": "",
		// 오버라이드 가능한 변수
		"$focus_override_down|default": "",
		// 오버라이드 가능한 변수
		"$focus_override_up|default": "",
		// 오버라이드 가능한 변수
		"$focus_override_left|default": "",
		// 오버라이드 가능한 변수
		"$focus_override_right|default": "",
		// 포커스 이동용 ID
		"focus_identifier": "$focus_id",
		// 아래로 이동할 대상
		"focus_change_down": "$focus_override_down",
		// 위로 이동할 대상
		"focus_change_up": "$focus_override_up",
		// 왼쪽으로 이동할 대상
		"focus_change_left": "$focus_override_left",
		// 오른쪽으로 이동할 대상
		"focus_change_right": "$focus_override_right",
		// 포커스 가능 여부
		"focus_enabled": true,

		// 겹치는 순서(숫자 클수록 위)
		"layer": 2,
		// 입력 키/버튼과 동작 연결
		"button_mappings": [
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.menu_select",
				// 어떤 동작을 실행할지
				"to_button_id": "$hotbar_select",
				// 입력 시점(pressed 등)
				"mapping_type": "pressed",
				// ?? ?? ?
				"button_up_right_of_first_refusal": true
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.menu_ok",
				// 어떤 동작을 실행할지
				"to_button_id": "button.hotbar_ok",
				// 입력 시점(pressed 등)
				"mapping_type": "focused"
			},
			{
				// 어떤 동작을 실행할지
				"to_button_id": "button.slot_pressed",
				// 입력 시점(pressed 등)
				"mapping_type": "pressed"
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 목록 이름
				"binding_collection_name": "$hotbar_collection_name",
				// 목록 인덱스/현재 항목 정보 제공
				"binding_type": "collection_details"
			}
		]
	},

	// Displays player's position in the form "Position: 0, 0, 0", as well as "Agent Pos: 0, 0, 0" if an owned agent is present
	"player_position": {
		// 이미지 표시
		"type": "image",
		// 가로/세로 크기
		"size": ["100%c + 6px", "100%c + 2px"],
		// 사용할 이미지 경로
		"texture": "textures/ui/Black",
		// ???
		"alpha": 0.7,
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"player_position_text": {
					// 글자 표시
					"type": "label",
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_middle",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_middle",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 1,
					// ?? ??
					"enable_profanity_filter": false,
					// ?? (R,G,B,A)
					"color": "$chat_text_color",
					// ??
					"font_type": "MinecraftTen",
					// 보여줄 글자
					"text": "By TrayePlays",
					// ?? ?? ??
					"font_scale_factor": 1.5,
					// 기준점에서 이동하는 거리
					"offset": [0, -2.5],
					// ?? ??
					"shadow": false,
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#player_position_text",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#text",
							// ?? ???
							"binding_condition": "always_when_visible",
							// 게임이 주는 전역 값 연결
							"binding_type": "global"
						}
					],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"trayeImage": {
								// 이미지 표시
								"type": "image",
								// 사용할 이미지 경로
								"texture": "textures/game/traye",
								// 가로/세로 크기
								"size": ["100%", "100%"],
								// 기준점에서 이동하는 거리
								"offset": [70, 1]
							}
						}
					]
				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#player_position_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible",
				// ?? ???
				"binding_condition": "always",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			}
		]
	},

	// Displays number of played in-game days
	"number_of_days_played": {
		// 이미지 표시
		"type": "image",
		// 가로/세로 크기
		"size": ["100%c + 6px", "100%c + 2px"],
		// 사용할 이미지 경로
		"texture": "textures/ui/Black",
		// ???
		"alpha": 0.7,
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"number_of_days_played_text": {
					// 글자 표시
					"type": "label",
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_middle",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_middle",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 1,

					// ?? ??
					"enable_profanity_filter": false,
					// ?? (R,G,B,A)
					"color": "$chat_text_color",
					// 보여줄 글자
					"text": "#text",
					// ?? ??
					"shadow": true,

					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#number_of_days_played_text",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#text",
							// ?? ???
							"binding_condition": "always_when_visible",
							// 게임이 주는 전역 값 연결
							"binding_type": "global"
						}
					]
				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#number_of_days_played_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible",
				// ?? ???
				"binding_condition": "always",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			}
		]
	},

	// ???/?? ??
	"anim_chat_txt_alpha": {
		// 투명도 변화
		"anim_type": "alpha",
		// 움직임 곡선
		"easing": "in_quart",
		// 걸리는 시간(초)
		"duration": 1,
		// 시작 값
		"from": 1,
		// 끝 값
		"to": 0
	},

	// ???/?? ??
	"anim_chat_txt_wait": {
		// 잠시 대기
		"anim_type": "wait",
		// 걸리는 시간(초)
		"duration": "$chat_item_lifetime",
		// 다음 애니메이션으로 연결
		"next": "@hud.anim_chat_txt_alpha"
	},

	// ???/?? ??
	"anim_chat_bg_alpha": {
		// 투명도 변화
		"anim_type": "alpha",
		// 움직임 곡선
		"easing": "in_quart",
		// ?? ??
		"destroy_at_end": "chat_grid_item",
		// 걸리는 시간(초)
		"duration": 1,
		// 시작 값
		"from": 0.7,
		// 끝 값
		"to": 0
	},

	// ???/?? ??
	"anim_chat_bg_wait": {
		// 잠시 대기
		"anim_type": "wait",
		// 걸리는 시간(초)
		"duration": "$chat_item_lifetime",
		// 다음 애니메이션으로 연결
		"next": "@hud.anim_chat_bg_alpha"
	},

	// ???/?? ??
	"chat_label": {
		// 글자 표시
		"type": "label",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 31,
		// 보여줄 글자
		"text": "#text",
		// 가로/세로 크기
		"size": ["100%", "default"],
		// ?? ??
		"shadow": true,
		// ?? ??
		"localize": false,
		// ?? (R,G,B,A)
		"color": "$chat_text_color",
		// ??
		"font_type": "$chat_font_type",
		// ?? ?? ??
		"font_scale_factor": "$chat_font_scale_factor",
		// ??/?? ?
		"line_padding": "$chat_line_spacing",
		// 애니메이션 목록
		"anims": ["@hud.anim_chat_txt_wait"],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#chat_text",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#text",
				// 목록 데이터를 반복 연결
				"binding_type": "collection",
				// 목록 이름
				"binding_collection_name": "chat_text_grid",
				// ?? ???
				"binding_condition": "once"
			}
		]
	},

	// ???/?? ??
	"chat_grid_item": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// 가로/세로 크기
		"size": ["100%-2px", "100%c+0.3px"], // Crafted to fit messages with neither gap or overlap
		// 기준점(어디에서 시작할지)
		"anchor_from": "top_left",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "top_left",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "(not #on_new_death_screen)",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible"
			}
		],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"chat_background": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/Black",
					// ???
					"alpha": 0.7,
					// 가로/세로 크기
					"size": ["100%", "100%c"],
					// 애니메이션 목록
					"anims": ["@hud.anim_chat_bg_wait"],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"chat_text@chat_label": {
								// 기준점(어디에서 시작할지)
								"anchor_from": "top_left",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "top_left",
								// 기준점에서 이동하는 거리
								"offset": [2, 0]
							}
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"chat_panel": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		//Uncomment when text formatting is being accounted for in word length
		//"clips_children": true,
		"anchor_from": "top_left",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "top_left",
		// 가로/세로 크기
		"size": ["100%", "100%c"],
		// ?? ?? ?
		"max_size": ["100%", "50%"],

		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"stack_panel": {
					// 줄맞춤 컨테이너: 가로/세로로 자동 배치
					"type": "stack_panel",
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left",
					// 목록 아이템을 자동으로 생성
					"factory": {
						// ?? ??
						"name": "chat_item_factory",
						// ?? ?? ?
						"max_children_size": 50,
						// 팩토리 템플릿 매핑
						"control_ids": {
							// ?? ??
							"chat_item": "chat_item@hud.chat_grid_item"
						}
					}
				}
			}
		]
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"item_durability@common.durability_bar": {
		// 오버라이드 가능한 변수
		"$durability_bar_required|default": true,
		// 오버라이드 가능한 변수
		"$item_collection_name": "$hotbar_collection_name"
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"item_storage@common.storage_bar": {
		// 오버라이드 가능한 변수
		"$storage_bar_required|default": true,
		// 오버라이드 가능한 변수
		"$item_collection_name": "$hotbar_collection_name"
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"container_item_lock_overlay@common.container_item_lock_overlay": {
		// 오버라이드 가능한 변수
		"$item_collection_name": "$hotbar_collection_name"
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"item_lock_cell_image@common.item_lock_cell_image": {
		// 오버라이드 가능한 변수
		"$item_collection_name": "$hotbar_collection_name"
	},

	// ???/?? ??
	"gui_hotbar_grid_item": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// 가로/세로 크기
		"size": [20, 22],
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "top_left",
		// 기준점(어디에서 시작할지)
		"anchor_from": "top_left",
		// 오버라이드 가능한 변수
		"$stack_count_required|default": true,
		// 오버라이드 가능한 변수
		"$durability_bar_required|default": true,
		// 오버라이드 가능한 변수
		"$storage_bar_required|default": true,
		// 이 안에 들어가는 부품 목록
		"controls": [
			{"hotbar_slot_selected_image@hotbar_slot_selected_image": {}},
			{"hotbar_renderer@hotbar_renderer": {}},
			{
				// ???/?? ??
				"hotbar_parent": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": [18, 18],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"item_icon@hotbar_hud_item_icon": {
								// 겹치는 순서(숫자 클수록 위)
								"layer": 3,
								// 가로/세로 크기
								"size": [16, 16]
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"item_count@common.stack_count_label": {
								// 겹치는 순서(숫자 클수록 위)
								"layer": 4,
								// 오버라이드 가능한 변수
								"$item_collection_name": "$hotbar_collection_name",
								// 오버라이드 가능한 변수
								"$stack_count_collection_name": "$hotbar_collection_name",
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#inventory_stack_count",
										// 목록 데이터를 반복 연결
										"binding_type": "collection",
										// 목록 이름
										"binding_collection_name": "$stack_count_collection_name"
									},
									{
										// 가져올 값 이름
										"binding_name": "#stack_count_visible",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#visible",
										// 목록 데이터를 반복 연결
										"binding_type": "collection",
										// 목록 이름
										"binding_collection_name": "$stack_count_collection_name"
									}
								]
							}
						},
						{"hotbar_hint@edu_common.hotbar_hint": {}},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"item_dura@item_durability": {
								// 겹치는 순서(숫자 클수록 위)
								"layer": 5
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"item_store@item_storage": {
								// 겹치는 순서(숫자 클수록 위)
								"layer": 5
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"container_item_lock_overlay@hud.container_item_lock_overlay": {
								// 겹치는 순서(숫자 클수록 위)
								"layer": 6,
								// 가로/세로 크기
								"size": [16, 16]
							}
						}
					]
				}
			},
			{"cooldown_renderer@cooldown_renderer": {"layer": 10}},
			{"hotbar_slot_button@gui_hotbar_slot_button_prototype": {}}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#hotbar_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible"
			}
		]
	},

	// redo layout for each hotbar grid item to work with the binding trick
	// without touching classic
	"gui_hotbar_grid_item_pocket": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// 가로/세로 크기
		"size": ["11.11%", "100%"],
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "top_left",
		// 기준점(어디에서 시작할지)
		"anchor_from": "top_left",
		// 오버라이드 가능한 변수
		"$stack_count_required|default": true,
		// 오버라이드 가능한 변수
		"$durability_bar_required|default": true,
		// 오버라이드 가능한 변수
		"$storage_bar_required|default": true,
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"hotbar_slot_selected_image@hotbar_slot_selected_image": {
					// 가로/세로 크기
					"size": ["120%", "120%"]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"hotbar_renderer@hotbar_renderer": {
					// 오버라이드 가능한 변수
					"$hotbar_renderer_size": ["105%", "105%"]
				}
			},
			{
				// ???/?? ??
				"hotbar_parent": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"item_icon@hotbar_hud_item_icon": {
								// 겹치는 순서(숫자 클수록 위)
								"layer": 3,
								// 가로/세로 크기
								"size": ["80%", "80%"]
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"item_count@common.stack_count_label": {
								// 겹치는 순서(숫자 클수록 위)
								"layer": 4,
								// 오버라이드 가능한 변수
								"$item_collection_name": "$hotbar_collection_name",
								// 오버라이드 가능한 변수
								"$stack_count_collection_name": "$hotbar_collection_name",
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#inventory_stack_count",
										// 목록 데이터를 반복 연결
										"binding_type": "collection",
										// 목록 이름
										"binding_collection_name": "$stack_count_collection_name"
									},
									{
										// 가져올 값 이름
										"binding_name": "#stack_count_visible",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#visible",
										// 목록 데이터를 반복 연결
										"binding_type": "collection",
										// 목록 이름
										"binding_collection_name": "$stack_count_collection_name"
									}
								]
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"item_dura@item_durability": {
								// 겹치는 순서(숫자 클수록 위)
								"layer": 5
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"item_store@item_storage": {
								// 겹치는 순서(숫자 클수록 위)
								"layer": 5
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"container_item_lock_overlay@hud.container_item_lock_overlay": {
								// 겹치는 순서(숫자 클수록 위)
								"layer": 6,
								// 가로/세로 크기
								"size": [16, 16]
							}
						}
					]
				}
			},
			{"cooldown_renderer@cooldown_renderer": {"layer": 10}},
			{"hotbar_slot_button@gui_hotbar_slot_button_prototype": {}}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#hotbar_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible"
			}
		]
	},

	// ???/?? ??
	"centered_gui_elements": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"hud_player_rend_desktop@hud_player_renderer": {
					// 기준점에서 이동하는 거리
					"offset": "$hud_player_rend_desktop_offset",
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_left"
				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#hud_visible_centered_gui_elements",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			}
		]
	},

	// ???/?? ??
	"centered_gui_elements_at_bottom_middle": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 기준점(어디에서 시작할지)
		"anchor_from": "bottom_left",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "bottom_left",
		// 기준점에서 이동하는 거리
		"offset": [10, -10],
		// 가로/세로 크기
		"size": [180, 50],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"heart_rend@heart_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [-1, -40],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"horse_heart_rend_0@horse_heart_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [180, -56],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#creative_horse_hearts",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"horse_heart_rend_1@horse_heart_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [180, -50],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#survival_horse_hearts",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"armor_rend@armor_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [-1, -40],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"hunger_rend@hunger_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [180, -40],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"bubbles_rend_0@bubbles_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [180, -50],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#is_not_riding_bubbles",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"bubbles_rend_1@bubbles_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [180, -50],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#is_riding_bubbles",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{"exp_rend@exp_progress_bar_and_hotbar": {}} // for classic
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#hud_visible_centered",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			}
		]
	},

	// ???/?? ??
	"centered_gui_elements_at_bottom_middle_touch": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 기준점(어디에서 시작할지)
		"anchor_from": "bottom_middle",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "bottom_middle",
		// 가로/세로 크기
		"size": [200, 50],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"heart_rend@heart_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [-1, -40],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"horse_heart_rend_0@horse_heart_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [200, -56],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#creative_horse_hearts",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"horse_heart_rend_1@horse_heart_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [200, -50],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#survival_horse_hearts",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"armor_rend@armor_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [-1, -40],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"hunger_rend@hunger_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [200, -40],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"bubbles_rend_0@bubbles_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [200, -50],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#is_not_riding_bubbles",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"bubbles_rend_1@bubbles_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [200, -50],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#is_riding_bubbles",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{"exp_rend@exp_progress_bar_and_hotbar": {}} // for classic
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#hud_visible_centered_touch",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			}
		]
	},

	// ???/?? ??
	"not_centered_gui_elements": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"heart_rend@heart_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [2, 2],
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_left"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"horse_heart_rend@horse_heart_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [-2, 2],
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_right",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_right",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 1,
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#horse_hearts_touch",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"hunger_rend@hunger_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [-2, 2],
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_right",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_right"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"armor_rend@armor_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [2, 2],
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_left"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"hud_player_rend_pocket@hud_player_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [15, 15],
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_left"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"bubbles_rend_0@bubbles_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [-2, 12],
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_right",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_right",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#is_not_riding_bubbles",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"bubbles_rend_1@bubbles_renderer": {
					// 기준점에서 이동하는 거리
					"offset": [-2, 12],
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_right",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_right",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#is_riding_bubbles",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#hud_visible_not_centered",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			}
		]
	},

	// ???/?? ??
	"hotbar_chooser": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": ["100%c", "100%c"],
		// 오버라이드 가능한 변수
		"$ignore_desktop": true,
		// 오버라이드 가능한 변수
		"$ignore_pocket": false,
		// 조건에 따라 변수 값을 바꾸기
		"variables": [
			{
				// 이 조건이 맞으면 적용
				"requires": "($desktop_screen and not $education_edition)",
				// 오버라이드 가능한 변수
				"$ignore_desktop": false,
				// 오버라이드 가능한 변수
				"$ignore_pocket": true
			}
		],

		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"desktop_hotbar@hotbar_panel": {
					// 완전히 제거(공간도 없음)
					"ignored": "$ignore_desktop",
					// 기준점에서 이동하는 거리
					"offset": [-4, 0]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"pocket_hotbar@hotbar_panel": {
					// 완전히 제거(공간도 없음)
					"ignored": "$ignore_pocket",
					// 기준점에서 이동하는 거리
					"offset": [-4, 0]
				}
			}
		]
	},

	// ???/?? ??
	"hotbar_elipses_panel_right_content": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 가로/세로 크기
		"size": [20, 22],
		// 쌓는 방향(가로/세로)
		"orientation": "horizontal",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{"elipses_content@hud.hotbar_elipses_panel_right_art": {}}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#hotbar_elipses_right_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			}
		]
	},

	// ???/?? ??
	"hotbar_elipses_panel_right_art": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 오버라이드 가능한 변수
		"$hotbar_elipses_panel_right_art_size|default": [20, 22],
		// 가로/세로 크기
		"size": "$hotbar_elipses_panel_right_art_size",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 4,
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"slot@hud.hotbar_slot_image": {
					// 오버라이드 가능한 변수
					"$hotbar_slot_image_size": "$hotbar_elipses_panel_right_art_size",
					// The layering is for cover the grid cap/black border when this panel is visible
					"layer": 2,
					//Grab the right hand end of the hotbar
					"texture": "textures/ui/hotbar_8"
				}
			},
			{"button@hud.hotbar_elipses_button": {}}
		]
	},

	// ???/?? ??
	"hotbar_elipses_panel_left_content": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 쌓는 방향(가로/세로)
		"orientation": "horizontal",
		// 가로/세로 크기
		"size": [20, 22],
		// 이 안에 들어가는 부품 목록
		"controls": [{"button@hud.hotbar_elipses_panel_left_art": {}}],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#hotbar_elipses_left_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			}
		]
	},

	// ???/?? ??
	"hotbar_elipses_panel_left_art": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 오버라이드 가능한 변수
		"$hotbar_elipses_panel_left_art_size|default": [20, 22],
		// 가로/세로 크기
		"size": "$hotbar_elipses_panel_left_art_size",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 4,
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"slot@hud.hotbar_slot_image": {
					// 겹치는 순서(숫자 클수록 위)
					"layer": 2,
					// 오버라이드 가능한 변수
					"$hotbar_slot_image_size": "$hotbar_elipses_panel_left_art_size",
					//Grab the left hand end of the hotbar
					"texture": "textures/ui/hotbar_0"
				}
			},
			{"button@hud.hotbar_elipses_button": {}}
		]
	},

	// ???/?? ??
	"hotbar_panel": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 쌓는 방향(가로/세로)
		"orientation": "horizontal",
		// 가로/세로 크기
		"size": ["100%c", 22],
		// 기준점(어디에서 시작할지)
		"anchor_from": "bottom_middle",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "bottom_middle",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{"hotbar_start_cap@hud.hotbar_start_cap": {}},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"hotbar_elipses_panel_left@hud.hotbar_elipses_panel_left_content": {}
			},
			{"hotbar_grid@hud.hotbar_grid": {}},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"hotbar_elipses_panel_right@hud.hotbar_elipses_panel_right_content": {}
			},
			{"hotbar_end_cap@hud.hotbar_end_cap": {}}
		]
	},

	// redo layout for hotbar panel to work with the binding trick
	// without touching classic
	"hotbar_panel_pocket": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 쌓는 방향(가로/세로)
		"orientation": "horizontal",
		// 가로/세로 크기
		"size": ["100%", 40],
		// 기준점에서 이동하는 거리
		"offset": [0, 0],
		// 기준점(어디에서 시작할지)
		"anchor_from": "top_left",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "top_left",
		// ??/?? ?
		"use_anchored_offset": true,
		// 이 컨트롤 안에서 쓰는 임시 저장소
		"property_bag": {
			// ???/??? ?
			"#anchored_offset_value_x": 0.0,
			// ???/??? ?
			"#anchored_offset_value_y": 0.0,
			// ???/??? ?
			"#size_binding_x": 0.0,
			// ???/??? ?
			"#size_binding_y": 0.0
		},
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"hotbar_start_cap_frame": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": [1, "100%"],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"hotbar_start_cap@hud.hotbar_start_cap": {
								// 기준점에서 이동하는 거리
								"offset": [0, "-2.5%"],
								// 오버라이드 가능한 변수
								"$cap_size": [1, "105%"]
							}
						}
					]
				}
			},
			{
				// ???/?? ??
				"hotbar_elipses_panel_left": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": ["10%", "100%"],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"hotbar_elipses_panel_left@hud.hotbar_elipses_panel_left_art": {
								// 오버라이드 가능한 변수
								"$hotbar_elipses_panel_left_art_size": [
									"105%",
									"105%"
								],
								// 오버라이드 가능한 변수
								"$hotbar_elipses_button_size": ["77%", "77%"],
								// 오버라이드 가능한 변수
								"$elipses_image_size": ["75%", "75%"]
							}
						}
					],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#hotbar_elipses_left_visible",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible",
							// 게임이 주는 전역 값 연결
							"binding_type": "global"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"hotbar_grid@hud.hotbar_grid": {
					// 가로/세로 크기
					"size": ["90%", "100%"],
					// ??? ?? ?
					"grid_item_template": "hud.gui_hotbar_grid_item_pocket"
				}
			},
			{
				// ???/?? ??
				"hotbar_elipses_panel_right": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": ["10%", "100%"],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"hotbar_elipses_panel_right@hud.hotbar_elipses_panel_right_art": {
								// 오버라이드 가능한 변수
								"$hotbar_elipses_panel_right_art_size": [
									"105%",
									"105%"
								],
								// 오버라이드 가능한 변수
								"$hotbar_elipses_button_size": ["77%", "77%"],
								// 오버라이드 가능한 변수
								"$elipses_image_size": ["75%", "75%"]
							}
						}
					],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#hotbar_elipses_right_visible",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible",
							// 게임이 주는 전역 값 연결
							"binding_type": "global"
						}
					]
				}
			},
			{
				// ???/?? ??
				"hotbar_end_cap_frame": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": [1, "100%"],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"hotbar_end_cap@hud.hotbar_end_cap": {
								// 기준점에서 이동하는 거리
								"offset": [0, "-2.5%"],
								// 오버라이드 가능한 변수
								"$cap_size": [1, "105%"]
							}
						}
					]
				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#hotbar_offset_x",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#anchored_offset_value_x"
			},
			{
				// 가져올 값 이름
				"binding_name": "#hotbar_offset_y",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#anchored_offset_value_y"
			},
			{
				// 가져올 값 이름
				"binding_name": "#hotbar_size_x",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#size_binding_x"
			},
			{
				// 가져올 값 이름
				"binding_name": "#hotbar_size_y",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#size_binding_y"
			}
		]
	},

	// ???/?? ??
	"hotbar_grid": {
		// 격자 컨테이너: 칸칸이 배치
		"type": "grid",
		// 오버라이드 가능한 변수
		"$hotbar_collection_name|default": "hotbar_items",
		// ??? ?? ?
		"grid_item_template": "hud.gui_hotbar_grid_item",
		// ??? ?? ?
		"grid_dimension_binding": "#hotbar_grid_dimensions",
		// 목록 이름
		"collection_name": "$hotbar_collection_name",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#hotbar_grid_dimensions",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			}
		]
	},

	// ???/?? ??
	"edu_hotbar_grid": {
		// 격자 컨테이너: 칸칸이 배치
		"type": "grid",
		// ??? ?? ?
		"grid_item_template": "hud.gui_hotbar_grid_item",
		// ??? ?? ?
		"grid_dimension_binding": "#hotbar_grid_dimensions",
		// 목록 이름
		"collection_name": "$hotbar_collection_name",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#hotbar_grid_dimensions",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			}
		]
	},

	// ???/?? ??
	"anim_item_name_text_alpha_in": {
		// 투명도 변화
		"anim_type": "alpha",
		// 걸리는 시간(초)
		"duration": 0,
		// 시작 값
		"from": 0.0,
		// 끝 값
		"to": 1.0,
		// 다음 애니메이션으로 연결
		"next": "@hud.anim_item_name_text_alpha_stay"
	},

	// ???/?? ??
	"anim_item_name_text_alpha_stay": {
		// 잠시 대기
		"anim_type": "wait",
		// 걸리는 시간(초)
		"duration": "$wait_duration",
		// 다음 애니메이션으로 연결
		"next": "@hud.anim_item_name_text_alpha_out"
	},

	// ???/?? ??
	"anim_item_name_text_alpha_out": {
		// 투명도 변화
		"anim_type": "alpha",
		// 움직임 곡선
		"easing": "in_expo",
		// ?? ??
		"destroy_at_end": "$destroy_id",
		// 걸리는 시간(초)
		"duration": 2,
		// 시작 값
		"from": 1.0,
		// 끝 값
		"to": 0
	},

	// ???/?? ??
	"anim_item_name_background_alpha_in": {
		// 투명도 변화
		"anim_type": "alpha",
		// 걸리는 시간(초)
		"duration": 0,
		// 시작 값
		"from": 0,
		// 끝 값
		"to": 0.6,
		// 다음 애니메이션으로 연결
		"next": "@hud.anim_item_name_background_alpha_stay"
	},

	// ???/?? ??
	"anim_item_name_background_alpha_stay": {
		// 잠시 대기
		"anim_type": "wait",
		// 걸리는 시간(초)
		"duration": "$wait_duration",
		// 다음 애니메이션으로 연결
		"next": "@hud.anim_item_name_background_alpha_out"
	},

	// ???/?? ??
	"anim_item_name_background_alpha_out": {
		// 투명도 변화
		"anim_type": "alpha",
		// 움직임 곡선
		"easing": "in_expo",
		// 걸리는 시간(초)
		"duration": 2,
		// 시작 값
		"from": 0.6,
		// 끝 값
		"to": 0
	},

	// ???/?? ??
	"item_name_text_root": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": ["100%cm", "100%cm"],
		// 오버라이드 가능한 변수
		"$show_interact_padding|default": false,
		// 오버라이드 가능한 변수
		"$show_survival_padding|default": false,

		// 오버라이드 가능한 변수
		"$show_text_background|default": false,

		// 오버라이드 가능한 변수
		"$text_color|default": "$tool_tip_text",
		// 오버라이드 가능한 변수
		"$text_binding|default": "#item_text",

		// 기준점(어디에서 시작할지)
		"anchor_from": "bottom_middle",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "bottom_middle",
		// 오버라이드 가능한 변수
		"$wait_duration|default": 1,
		// 오버라이드 가능한 변수
		"$destroy_id|default": "item_name_text",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"item_text_aligner": {
					// 줄맞춤 컨테이너: 가로/세로로 자동 배치
					"type": "stack_panel",
					// 가로/세로 크기
					"size": ["100%cm", "100%c"],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"item_text_control": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": ["100%cm", "100%cm"],
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"item_text_background": {
											// 완전히 제거(공간도 없음)
											"ignored": "(not $show_text_background)",

											// 이미지 표시
											"type": "image",
											// 가로/세로 크기
											"size": [
												"100%sm + 12px",
												"100%sm + 5px"
											],
											// 사용할 이미지 경로
											"texture": "textures/ui/hud_tip_text_background",
											// ???
											"alpha": "@hud.anim_item_name_background_alpha_in"
										}
									},
									{
										// ???/?? ??
										"item_text_label": {
											// 글자 표시
											"type": "label",
											// ?? ?? ?
											"max_size": [200, "default"],
											// ?? ??
											"text_alignment": "center",
											// 겹치는 순서(숫자 클수록 위)
											"layer": 31,
											// ?? (R,G,B,A)
											"color": "$text_color",
											// 보여줄 글자
											"text": "#text",
											// ???
											"alpha": "@hud.anim_item_name_text_alpha_in",
											// Disable profanity filter for this control so that
											// we can enable it on the fly only for items with custom names
											"enable_profanity_filter": false,
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 가져올 값 이름
													"binding_name": "$text_binding",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#text"
												}
											]
										}
									}
								]
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"interact_padding@common.empty_panel": {
								// 보이기/숨기기(공간 유지)
								"visible": "$show_interact_padding",
								// To not overlap with the interact button
								// the text needs to move up by 18
								"size": ["100%sm", 18],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#interact_visible",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#visible",
										// ?? ???
										"binding_condition": "always"
									}
								]
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"survival_buffer@common.empty_panel": {
								// 보이기/숨기기(공간 유지)
								"visible": "$show_survival_padding",
								// Survival HUD has elements above the hot bar
								// meaning the text needs to move up
								"size": ["100%sm", 17],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#show_survival_ui",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#visible"
									}
								]
							}
						}
					]
				}
			}
		]
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"item_name_text@hud.item_name_text_root": {
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#item_name_text_offset",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#offset"
			}
		]
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"jukebox_popup_text@hud.item_name_text_root": {
		// 오버라이드 가능한 변수
		"$text_color": "$jukebox_text_color",
		// 오버라이드 가능한 변수
		"$text_binding": "#jukebox_text",
		// 기준점에서 이동하는 거리
		"offset": [0, -34]
	},

	// ???/?? ??
	"hud_tip_text": {
		// 이미지 표시
		"type": "image",
		// 가로/세로 크기
		"size": ["100%c + 12px", "100%c + 5px"],
		// 기준점에서 이동하는 거리
		"offset": [0, -42],
		// 사용할 이미지 경로
		"texture": "textures/ui/hud_tip_text_background",
		// ???
		"alpha": "@hud.anim_item_name_background_alpha_out",
		// 기준점(어디에서 시작할지)
		"anchor_from": "bottom_middle",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "bottom_middle",
		// 오버라이드 가능한 변수
		"$wait_duration|default": 1,
		// 오버라이드 가능한 변수
		"$destroy_id|default": "popup_tip_text",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"item_text_label": {
					// 글자 표시
					"type": "label",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 31,
					// ?? (R,G,B,A)
					"color": "$tool_tip_text",
					// 보여줄 글자
					"text": "#text",
					// ?? ??
					"shadow": true,
					// ???
					"alpha": "@hud.anim_item_name_text_alpha_out",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#tip_text",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#text"
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"anim_actionbar_text_alpha_out": {
		// 투명도 변화
		"anim_type": "alpha",
		// 움직임 곡선
		"easing": "in_expo",
		// 걸리는 시간(초)
		"duration": 3,
		// 시작 값
		"from": 1.0,
		// 끝 값
		"to": 0,
		// ?? ??
		"destroy_at_end": "hud_actionbar_text",
		// ?? ??
		"end_event": "hud_actionbar_text_complete"
	},

	// ???/?? ??
	"anim_actionbar_text_background_alpha_out": {
		// 투명도 변화
		"anim_type": "alpha",
		// 움직임 곡선
		"easing": "in_expo",
		// 걸리는 시간(초)
		"duration": 3,
		// 시작 값
		"from": "$actionbar_text_background_alpha",
		// 끝 값
		"to": 0,
		// ?? ??
		"destroy_at_end": "hud_actionbar_text",
		// ?? ??
		"end_event": "hud_actionbar_text_complete"
	},

	// ???/?? ??
	"auto_save_animation": {
		// 프레임 애니메이션
		"anim_type": "flip_book",
		// ?? ??
		"initial_uv": [0, 0],
		// ?? ??
		"frame_count": 9,
		// ?? ??
		"frame_step": 18,
		// ?? ??
		"fps": 10,
		// ?? ??
		"reversible": true,
		// 움직임 곡선
		"easing": "linear"
	},

	// ???/?? ??
	"auto_save": {
		// 이미지 표시
		"type": "image",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 31,
		// 사용할 이미지 경로
		"texture": "textures/ui/auto_save",
		// 기준점(어디에서 시작할지)
		"anchor_from": "top_right",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "top_right",
		// 기준점에서 이동하는 거리
		"offset": [-15, 15],
		// 가로/세로 크기
		"size": [18, 30],
		// ???? ??
		"uv_size": [18, 30],
		// ???? ?? ??
		"uv": "@auto_save_animation",
		// ????? ?? ?
		"disable_anim_fast_forward": true,
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#auto_save_animation_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible"
			}
		]
	},

	// ???/?? ??
	"hud_actionbar_text": {
		// 이미지 표시
		"type": "image",
		// 가로/세로 크기
		"size": ["100%c + 12px", "100%c + 5px"],
		// 기준점에서 이동하는 거리
		"offset": [0, "50%-68px"],
		// 사용할 이미지 경로
		"texture": "textures/ui/hud_tip_text_background",
		// ???
		"alpha": "@hud.anim_actionbar_text_background_alpha_out",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"actionbar_message": {
					// 글자 표시
					"type": "label",
					// 기준점(어디에서 시작할지)
					"anchor_from": "center",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "center",
					// ?? (R,G,B,A)
					"color": "$tool_tip_text",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 31,
					// 보여줄 글자
					"text": "$actionbar_text",
					// ?? ??
					"localize": false,
					// ???
					"alpha": "@hud.anim_actionbar_text_alpha_out"
				}
			}
		]
	},

	// ???/?? ??
	"anim_title_text_alpha_in": {
		// 투명도 변화
		"anim_type": "alpha",
		// 움직임 곡선
		"easing": "linear",
		// 걸리는 시간(초)
		"duration": "$title_fade_in_time",
		// 시작 값
		"from": 0,
		// 끝 값
		"to": 1,
		// 다음 애니메이션으로 연결
		"next": "@hud.anim_title_text_alpha_stay"
	},

	// ???/?? ??
	"anim_title_text_alpha_stay": {
		// 잠시 대기
		"anim_type": "wait",
		// 걸리는 시간(초)
		"duration": "$title_stay_time",
		// 다음 애니메이션으로 연결
		"next": "@hud.anim_title_text_alpha_out"
	},

	// ???/?? ??
	"anim_title_text_alpha_out": {
		// 투명도 변화
		"anim_type": "alpha",
		// 움직임 곡선
		"easing": "linear",
		// 걸리는 시간(초)
		"duration": "$title_fade_out_time",
		// 시작 값
		"from": 1,
		// 끝 값
		"to": 0,
		// ?? ??
		"destroy_at_end": "hud_title_text",
		// ?? ??
		"end_event": "hud_title_text_complete"
	},

	// ???/?? ??
	"anim_title_background_alpha_in": {
		// 투명도 변화
		"anim_type": "alpha",
		// 움직임 곡선
		"easing": "linear",
		// 걸리는 시간(초)
		"duration": "$title_fade_in_time",
		// 시작 값
		"from": 0,
		// 끝 값
		"to": "$title_alpha",
		// 다음 애니메이션으로 연결
		"next": "@hud.anim_title_background_alpha_stay"
	},

	// ???/?? ??
	"anim_title_background_alpha_stay": {
		// 잠시 대기
		"anim_type": "wait",
		// 걸리는 시간(초)
		"duration": "$title_stay_time",
		// 다음 애니메이션으로 연결
		"next": "@hud.anim_title_background_alpha_out"
	},

	// ???/?? ??
	"anim_title_background_alpha_out": {
		// 투명도 변화
		"anim_type": "alpha",
		// 움직임 곡선
		"easing": "linear",
		// 걸리는 시간(초)
		"duration": "$title_fade_out_time",
		// 시작 값
		"from": "$title_alpha",
		// 끝 값
		"to": 0,
		// ?? ??
		"destroy_at_end": "hud_title_text",
		// ?? ??
		"end_event": "hud_title_text_complete"
	},

	// ???/?? ??
	"anim_subtitle_text_alpha_in": {
		// 투명도 변화
		"anim_type": "alpha",
		// ?? ??
		"play_event": "anim_subtitle_text_alpha_in_play_event",
		// 움직임 곡선
		"easing": "linear",
		// 걸리는 시간(초)
		"duration": "$title_fade_in_time",
		// 시작 값
		"from": 0,
		// 끝 값
		"to": 1,
		// 다음 애니메이션으로 연결
		"next": "@hud.anim_subtitle_text_alpha_stay"
	},

	// ???/?? ??
	"anim_subtitle_text_alpha_stay": {
		// 잠시 대기
		"anim_type": "wait",
		// 걸리는 시간(초)
		"duration": "$title_stay_time",
		// 다음 애니메이션으로 연결
		"next": "@hud.anim_subtitle_text_alpha_out"
	},

	// ???/?? ??
	"anim_subtitle_text_alpha_out": {
		// 투명도 변화
		"anim_type": "alpha",
		// 움직임 곡선
		"easing": "linear",
		// 걸리는 시간(초)
		"duration": "$title_fade_out_time",
		// 시작 값
		"from": 1,
		// 끝 값
		"to": 0,
		// ?? ??
		"end_event": "hud_subtitle_text_complete"
	},

	// ???/?? ??
	"anim_subtitle_background_alpha_in": {
		// 투명도 변화
		"anim_type": "alpha",
		// ?? ??
		"play_event": "anim_subtitle_text_alpha_in_play_event",
		// 움직임 곡선
		"easing": "linear",
		// 걸리는 시간(초)
		"duration": "$title_fade_in_time",
		// 시작 값
		"from": 0,
		// 끝 값
		"to": "$title_alpha",
		// 다음 애니메이션으로 연결
		"next": "@hud.anim_subtitle_background_alpha_stay"
	},

	// ???/?? ??
	"anim_subtitle_background_alpha_stay": {
		// 잠시 대기
		"anim_type": "wait",
		// 걸리는 시간(초)
		"duration": "$title_stay_time",
		// 다음 애니메이션으로 연결
		"next": "@hud.anim_subtitle_background_alpha_out"
	},

	// ???/?? ??
	"anim_subtitle_background_alpha_out": {
		// 투명도 변화
		"anim_type": "alpha",
		// 움직임 곡선
		"easing": "linear",
		// 걸리는 시간(초)
		"duration": "$title_fade_out_time",
		// 시작 값
		"from": "$title_alpha",
		// 끝 값
		"to": 0,
		// ?? ??
		"end_event": "hud_subtitle_text_complete"
	},

	// ???/?? ??
	"hud_title_text": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 쌓는 방향(가로/세로)
		"orientation": "vertical",
		// 기준점에서 이동하는 거리
		"offset": [0, -19],
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// ???
		"alpha": "@hud.anim_title_text_alpha_in",
		// ??? ?? ?
		"propagate_alpha": true,
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"title_frame": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": ["100%", "100%cm"],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"title_background": {
								// 이미지 표시
								"type": "image",
								// 가로/세로 크기
								"size": ["100%sm + 30px", "100%sm + 6px"],
								// 사용할 이미지 경로
								"texture": "textures/ui/hud_tip_text_background",
								// ???
								"alpha": "@hud.anim_title_background_alpha_in"
							}
						},
						{
							// ???/?? ??
							"title": {
								// 글자 표시
								"type": "label",
								// 기준점(어디에서 시작할지)
								"anchor_from": "top_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "top_middle",
								// ?? (R,G,B,A)
								"color": "$title_command_text_color",
								// 보여줄 글자
								"text": "#text",
								// 겹치는 순서(숫자 클수록 위)
								"layer": 31,
								// ?? ??
								"localize": false,
								// ?? ?? ?
								"font_size": "extra_large",
								// 조건에 따라 변수 값을 바꾸기
								"variables": [
									{
										// 이 조건이 맞으면 적용
										"requires": "(not $title_shadow)",
										// 오버라이드 가능한 변수
										"$show_shadow": false
									},
									{
										// 이 조건이 맞으면 적용
										"requires": "$title_shadow",
										// 오버라이드 가능한 변수
										"$show_shadow": true
									}
								],
								// ?? ??
								"shadow": "$show_shadow",
								// ?? ??
								"text_alignment": "center",
								// 기준점에서 이동하는 거리
								"offset": [0, 6],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#hud_title_text_string",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#text",
										// 게임이 주는 전역 값 연결
										"binding_type": "global"
									}
								]
							}
						}
					]
				}
			},
			{
				// ???/?? ??
				"subtitle_frame": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": ["100%", "100%cm"],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"subtitle_background": {
								// 이미지 표시
								"type": "image",
								// 가로/세로 크기
								"size": ["100%sm + 20px", "100%sm + 5px"],
								// 기준점에서 이동하는 거리
								"offset": [0, 16],
								// 사용할 이미지 경로
								"texture": "textures/ui/hud_tip_text_background",
								// 조건에 따라 변수 값을 바꾸기
								"variables": [
									{
										// 이 조건이 맞으면 적용
										"requires": "$subtitle_initially_visible",
										// 오버라이드 가능한 변수
										"$subtitle_bg": "@hud.anim_title_background_alpha_in"
									},
									{
										// 이 조건이 맞으면 적용
										"requires": "(not $subtitle_initially_visible)",
										// 오버라이드 가능한 변수
										"$subtitle_bg": "@hud.anim_subtitle_background_alpha_in"
									}
								],
								// ???
								"alpha": "$subtitle_bg"
							}
						},
						{
							// ???/?? ??
							"subtitle": {
								// 글자 표시
								"type": "label",
								// 기준점(어디에서 시작할지)
								"anchor_from": "top_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "top_middle",
								// ?? (R,G,B,A)
								"color": "$title_command_text_color",
								// 보여줄 글자
								"text": "#text",
								// 겹치는 순서(숫자 클수록 위)
								"layer": 31,
								// ?? ??
								"localize": false,
								// ?? ?? ?
								"font_size": "large",
								// 조건에 따라 변수 값을 바꾸기
								"variables": [
									{
										// 이 조건이 맞으면 적용
										"requires": "$subtitle_initially_visible",
										// 오버라이드 가능한 변수
										"$anim_type": 1.0
									},
									{
										// 이 조건이 맞으면 적용
										"requires": "(not $subtitle_initially_visible)",
										// 오버라이드 가능한 변수
										"$anim_type": "@hud.anim_subtitle_text_alpha_in"
									},
									{
										// 이 조건이 맞으면 적용
										"requires": "(not $title_shadow)",
										// 오버라이드 가능한 변수
										"$show_shadow": false
									},
									{
										// 이 조건이 맞으면 적용
										"requires": "$title_shadow",
										// 오버라이드 가능한 변수
										"$show_shadow": true
									}
								],
								// ?? ??
								"shadow": "$show_shadow",
								// ???
								"alpha": "$anim_type",
								// ?? ??
								"text_alignment": "center",
								// 기준점에서 이동하는 거리
								"offset": [1, 19],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#hud_subtitle_text_string",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#text",
										// 게임이 주는 전역 값 연결
										"binding_type": "global"
									}
								]
							}
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"boss_name_panel": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": ["100%", "100%c"],
		// 기준점(어디에서 시작할지)
		"anchor_from": "top_middle",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "top_middle",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"boss_name": {
					// 글자 표시
					"type": "label",
					// ?? (R,G,B,A)
					"color": "$boss_name_text_color",
					// 보여줄 글자
					"text": "#bossName",
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_middle",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_middle",
					// ?? ??
					"shadow": true,
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#bossName",
							// 목록 데이터를 반복 연결
							"binding_type": "collection",
							// 목록 이름
							"binding_collection_name": "boss_bars"
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"tooltip_helper_icon_description": {
		// 글자 표시
		"type": "label",
		// 오버라이드 가능한 변수
		"$tooltip_helper_description_size|default": ["fill", "default"],
		// 가로/세로 크기
		"size": "$tooltip_helper_description_size",
		// 오버라이드 가능한 변수
		"$tooltip_helper_description_max_size|default": ["fill", "default"],
		// ?? ?? ?
		"max_size": "$tooltip_helper_description_max_size",

		// ?? (R,G,B,A)
		"color": "$gamepad_description_text_color",

		// 오버라이드 가능한 변수
		"$tooltip_helper_description_shadow|default": true,
		// ?? ??
		"shadow": "$tooltip_helper_description_shadow",

		// 오버라이드 가능한 변수
		"$tooltip_description_offset|default": [0, 0],
		// 기준점에서 이동하는 거리
		"offset": "$tooltip_description_offset",

		// 오버라이드 가능한 변수
		"$tooltip_anchor": "left_middle",
		// 기준점(어디에서 시작할지)
		"anchor_from": "$tooltip_anchor",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "$tooltip_anchor",

		// 오버라이드 가능한 변수
		"$tip_description_font|default": "default",
		// ??
		"font_type": "$tip_description_font",

		// 보여줄 글자
		"text": "#helper_description",

		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"label_background": {
					// 오버라이드 가능한 변수
					"$tip_description_background_offset|default": [0, 0],
					// 오버라이드 가능한 변수
					"$tip_description_background_visible|default": true,

					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/Black",
					// ???
					"alpha": 0.5,
					// 겹치는 순서(숫자 클수록 위)
					"layer": -1,
					// 기준점에서 이동하는 거리
					"offset": "$tip_description_background_offset",
					// 가로/세로 크기
					"size": ["100% + 2px", "100% + 2px"],
					// 보이기/숨기기(공간 유지)
					"visible": "$tip_description_background_visible"
				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			// Duplicate binding necessary when toggling visibility
			// otherwise there is a delay when updating binds
			//
			// No condition has it update immediately when it
			// becomes visible but won't update if the tooltip
			// changes later.
			//
			// Always when visible condition lets it change but
			// has a delay in binding timing when it first becomes
			// visible.
			{
				// 가져올 값 이름
				"binding_name": "#helper_description",
				// 목록 데이터를 반복 연결
				"binding_type": "collection",
				// 목록 이름
				"binding_collection_name": "$tooltip_collection_name",
				// ?? ???
				"binding_condition": "always_when_visible"
			},
			{
				// 가져올 값 이름
				"binding_name": "#helper_description",
				// 목록 데이터를 반복 연결
				"binding_type": "collection",
				// 목록 이름
				"binding_collection_name": "$tooltip_collection_name",
				// ?? ???
				"binding_condition": "visible"
			}
		]
	},

	// ???/?? ??
	"tooltip_helper": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 쌓는 방향(가로/세로)
		"orientation": "horizontal",
		// 가로/세로 크기
		"size": ["100%", "100%cm"],
		// 겹치는 순서(숫자 클수록 위)
		"layer": 100,
		// 이 안에 들어가는 부품 목록
		"controls": [
			{"icon@$icon_image_ref": {"layer": 2}},
			{"padding@common.empty_panel": {"size": [2, "100%sm"]}},
			{
				// ???/?? ??
				"centerer": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": ["100%", "100%sm"],
					// 겹치는 순서(숫자 클수록 위)
					"layer": 1,
					// 이 안에 들어가는 부품 목록
					"controls": [
						{"desc@hud.tooltip_helper_icon_description": {}}
					]
				}
			}
		]
	},

	// ???/?? ??
	"tooltip_helper_form_fitting": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 쌓는 방향(가로/세로)
		"orientation": "horizontal",
		// 가로/세로 크기
		"size": ["100%c", "100%cm"],
		// 겹치는 순서(숫자 클수록 위)
		"layer": 100,
		// 이 안에 들어가는 부품 목록
		"controls": [
			{"icon@$icon_image_ref": {"layer": 2}},
			{"padding@common.empty_panel": {"size": [2, "100%sm"]}},
			{
				// ???/?? ??
				"centerer": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": ["100%c", "100%sm"],
					// 겹치는 순서(숫자 클수록 위)
					"layer": 1,
					// 이 안에 들어가는 부품 목록
					"controls": [
						{"desc@hud.tooltip_helper_icon_description": {}}
					]
				}
			}
		]
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"keyboard_tooltip_helper@hud.tooltip_helper": {
		// 완전히 제거(공간도 없음)
		"ignored": "(not $education_edition)",
		// 오버라이드 가능한 변수
		"$keyboard_description_offset|default": [0, 1],
		// 오버라이드 가능한 변수
		"$tooltip_description_offset": "$keyboard_description_offset"
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"keyboard_tooltip_helper_form_fitting@hud.tooltip_helper_form_fitting": {
		// 완전히 제거(공간도 없음)
		"ignored": "(not $education_edition)",
		// 오버라이드 가능한 변수
		"$keyboard_description_offset|default": [0, 1],
		// 오버라이드 가능한 변수
		"$tooltip_description_offset": "$keyboard_description_offset"
	},

	// Wrap in panel so @mixed_tooltip_helper doesn't override binds
	"mixed_tooltip_helper": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": ["100%", "100%cm"],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"gamepad_tooltip@hud.tooltip_helper": {
					// 오버라이드 가능한 변수
					"$icon_image_ref": "hud.base_icon_image",
					// 보이기/숨기기(공간 유지)
					"visible": false,
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#is_gamepad_tip",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"keyboard_tooltip@hud.keyboard_tooltip_helper": {
					// 오버라이드 가능한 변수
					"$icon_image_ref": "hud.base_keyboard_icon",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "(not #is_gamepad_tip)",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			}
		],
		// 오버라이드 가능한 변수
		"$tooltip_collection_name|default": "",
		// 오버라이드 가능한 변수
		"$tooltip_collection_prefix|default": "",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			// Duplicate binding necessary when toggling visibility
			// otherwise there is a delay when updating binds
			//
			// No condition has it update immediately when it
			// becomes visible but won't update if the tooltip
			// changes later.
			//
			// Always condition lets it change but has a delay in
			// binding timing when it first becomes visible.
			{
				// 가져올 값 이름
				"binding_name": "#tooltip_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible",
				// 목록 데이터를 반복 연결
				"binding_type": "collection",
				// 목록 이름
				"binding_collection_name": "$tooltip_collection_name",
				// ?? ???
				"binding_condition": "always"
			},
			{
				// 가져올 값 이름
				"binding_name": "#tooltip_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible",
				// 목록 데이터를 반복 연결
				"binding_type": "collection",
				// 목록 이름
				"binding_collection_name": "$tooltip_collection_name"
			}
		]
	},

	// ???/?? ??
	"mixed_tooltip_helper_form_fitting": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": ["100%cm", "100%cm"],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"gamepad_tooltip@hud.tooltip_helper_form_fitting": {
					// 오버라이드 가능한 변수
					"$icon_image_ref": "hud.base_icon_image",
					// 보이기/숨기기(공간 유지)
					"visible": false,
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#is_gamepad_tip",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"keyboard_tooltip@hud.keyboard_tooltip_helper_form_fitting": {
					// 오버라이드 가능한 변수
					"$icon_image_ref": "hud.base_keyboard_icon",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "(not #is_gamepad_tip)",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			}
		],
		// 오버라이드 가능한 변수
		"$tooltip_collection_name|default": "",
		// 오버라이드 가능한 변수
		"$tooltip_collection_prefix|default": "",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			// Duplicate binding necessary when toggling visibility
			// otherwise there is a delay when updating binds
			//
			// No condition has it update immediately when it
			// becomes visible but won't update if the tooltip
			// changes later.
			//
			// Always condition lets it change but has a delay in
			// binding timing when it first becomes visible.
			{
				// 가져올 값 이름
				"binding_name": "#tooltip_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible",
				// 목록 데이터를 반복 연결
				"binding_type": "collection",
				// 목록 이름
				"binding_collection_name": "$tooltip_collection_name",
				// ?? ???
				"binding_condition": "always"
			},
			{
				// 가져올 값 이름
				"binding_name": "#tooltip_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible",
				// 목록 데이터를 반복 연결
				"binding_type": "collection",
				// 목록 이름
				"binding_collection_name": "$tooltip_collection_name"
			}
		]
	},

	// ???/?? ??
	"base_icon_image": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 쌓는 방향(가로/세로)
		"orientation": "horizontal",
		// 가로/세로 크기
		"size": ["100%c", "100%cm"],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"icon": {
					// 이미지 표시
					"type": "image",
					// 가로/세로 크기
					"size": [26, 26],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#gamepad_button_icon",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#texture",
							// 목록 데이터를 반복 연결
							"binding_type": "collection",
							// 목록 이름
							"binding_collection_name": "$tooltip_collection_name",
							// ?? ???
							"binding_condition": "visible"
						}
					]
				}
			},
			{
				// ???/?? ??
				"postfix_label_wrapper": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": ["100%c", "100%sm"],
					// ?? ?? ?
					"min_size": [9, "100%sm"],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"label": {
								// 글자 표시
								"type": "label",
								// ??
								"font_type": "smooth",
								// ?? (R,G,B,A)
								"color": "$gamepad_description_text_color",
								// 보여줄 글자
								"text": "#gamepad_postfix_text",
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#gamepad_postfix_text",
										// 목록 데이터를 반복 연결
										"binding_type": "collection",
										// 목록 이름
										"binding_collection_name": "$tooltip_collection_name",
										// ?? ???
										"binding_condition": "visible"
									}
								]
							}
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"base_keyboard_icon": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// Outer panel provides padding between neighboring tooltips
		"size": ["100%c + 2px", "100%c + 2px"],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"icon": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": ["100%cm", 17],
					// ?? ?? ?
					"min_size": [17, 17],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"key_backing": {
								// 이미지 표시
								"type": "image",
								// 사용할 이미지 경로
								"texture": "textures/ui/keyboard_tooltip_background",
								// 가로/세로 크기
								"size": ["100%cm + 10px", "100%"],
								// ?? ?? ?
								"min_size": [17, "100%"],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "(not #is_mouse_button)",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#visible",
										// 목록 데이터를 반복 연결
										"binding_type": "collection",
										// 목록 이름
										"binding_collection_name": "$tooltip_collection_name"
									}
								],
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"key_label": {
											// 글자 표시
											"type": "label",
											// 겹치는 순서(숫자 클수록 위)
											"layer": 1,
											// ??
											"font_type": "smooth",
											// 기준점(어디에서 시작할지)
											"anchor_from": "top_middle",
											// 붙일 위치(어디에 놓을지)
											"anchor_to": "top_middle",
											// 기준점에서 이동하는 거리
											"offset": [0, 1],
											// 보여줄 글자
											"text": "#keyboard_key_text",
											// ?? (R,G,B,A)
											"color": "$0_color_format",
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 가져올 값 이름
													"binding_name": "#keyboard_key_text",
													// 목록 데이터를 반복 연결
													"binding_type": "collection",
													// 목록 이름
													"binding_collection_name": "$tooltip_collection_name"
												}
											]
										}
									}
								]
							}
						},
						{
							// ???/?? ??
							"mouse_buttons": {
								// 글자 표시
								"type": "label",
								// 겹치는 순서(숫자 클수록 위)
								"layer": 1,
								// 보여줄 글자
								"text": "#keyboard_key_text",
								// ?? (R,G,B,A)
								"color": "$dark_body_text_color",
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#keyboard_key_text",
										// 목록 데이터를 반복 연결
										"binding_type": "collection",
										// 목록 이름
										"binding_collection_name": "$tooltip_collection_name"
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "key_backing",
										// 계산식/참조 값
										"source_property_name": "#visible",
										// 결과가 들어갈 속성
										"target_property_name": "#visible",
										// ?? ??
										"resolve_sibling_scope": true
									}
								]
							}
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"left_helpers_edu": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 기준점(어디에서 시작할지)
		"anchor_from": "bottom_left",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "bottom_left",
		// 기준점에서 이동하는 거리
		"offset": [3, 0],
		// 겹치는 순서(숫자 클수록 위)
		"layer": 100,
		// 가로/세로 크기
		"size": ["100%", "100%c"],
		// 오버라이드 가능한 변수
		"$tooltip_helper_description_shadow": false,

		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"tip_window@common.tooltip_background": {
					// 오버라이드 가능한 변수
					"$tooltip_background_texture": "#texture",
					// 오버라이드 가능한 변수
					"$tip_description_font": "smooth",
					// 오버라이드 가능한 변수
					"$keyboard_description_offset": [0, 0],

					// 가로/세로 크기
					"size": ["100%cm + 10px", "100%cm + 18px"],
					// ???
					"alpha": 0.7,
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"stack_panel": {
								// 줄맞춤 컨테이너: 가로/세로로 자동 배치
								"type": "stack_panel",
								// 가로/세로 크기
								"size": ["100%cm", "100%c"],
								// 기준점에서 이동하는 거리
								"offset": [0, -5],

								// 오버라이드 가능한 변수
								"$tooltip_collection_name": "left_helper_collection",
								// 오버라이드 가능한 변수
								"$tooltip_collection_prefix": "left_helpers",
								// 목록 이름
								"collection_name": "$tooltip_collection_name",
								// 오버라이드 가능한 변수
								"$tooltip_helper_description_size": [
									"default",
									10
								],
								// 목록 아이템을 자동으로 생성
								"factory": {
									// ?? ??
									"name": "left_tooltip_factory",
									// ??? ???
									"control_name": "hud.mixed_tooltip_helper_form_fitting"
								},
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#left_helper_count",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#collection_length"
									}
								]
							}
						}
					],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#left_tips_visible",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible",
							// 목록 데이터를 반복 연결
							"binding_type": "collection",
							// 목록 이름
							"binding_collection_name": "controls_toggle",
							// ?? ???
							"binding_condition": "always"
						},
						{
							// 가져올 값 이름
							"binding_name": "#left_tip_background",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#texture",
							// 목록 데이터를 반복 연결
							"binding_type": "collection",
							// 목록 이름
							"binding_collection_name": "controls_toggle"
						}
					]
				}
			},
			{"tip_paddding@common.empty_panel": {"size": ["100%sm", 4]}},
			{
				// ???/?? ??
				"controls_toggle_label": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": ["100%", "100%cm"],

					// 오버라이드 가능한 변수
					"$tooltip_collection_name": "controls_toggle",
					// 오버라이드 가능한 변수
					"$gamepad_helper_visible_binding_type": "none",
					// 오버라이드 가능한 변수
					"$tip_description_background_visible": true,
					// 오버라이드 가능한 변수
					"$tip_description_background_offset": [0, 0],
					// 오버라이드 가능한 변수
					"$tooltip_helper_description_size": ["default", 10],

					// 이 안에 들어가는 부품 목록
					"controls": [{"tip@hud.mixed_tooltip_helper": {}}]
				}
			},
			{
				// ???/?? ??
				"controls_inventory_label": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": ["100%", "100%cm"],

					// 오버라이드 가능한 변수
					"$tooltip_collection_name": "controls_inventory_prompts_toggle",
					// 오버라이드 가능한 변수
					"$gamepad_helper_visible_binding_type": "none",
					// 오버라이드 가능한 변수
					"$tip_description_background_visible": true,
					// 오버라이드 가능한 변수
					"$tip_description_background_offset": [0, 0],
					// 오버라이드 가능한 변수
					"$tooltip_helper_description_size": ["default", 10],

					// 이 안에 들어가는 부품 목록
					"controls": [{"tip@hud.mixed_tooltip_helper": {}}]
				}
			},
			{
				// ???/?? ??
				"controls_menu_label": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": ["100%", "100%cm"],

					// 오버라이드 가능한 변수
					"$tooltip_collection_name": "controls_menu_prompts_toggle",
					// 오버라이드 가능한 변수
					"$gamepad_helper_visible_binding_type": "none",
					// 오버라이드 가능한 변수
					"$tip_description_background_visible": true,
					// 오버라이드 가능한 변수
					"$tip_description_background_offset": [0, 0],
					// 오버라이드 가능한 변수
					"$tooltip_helper_description_size": ["default", "default"],
					// 오버라이드 가능한 변수
					"$tooltip_helper_description_max_size": [
						"50% - 125px",
						"20px"
					],

					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"tip@hud.mixed_tooltip_helper": {}
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"left_helpers": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 기준점(어디에서 시작할지)
		"anchor_from": "bottom_left",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "bottom_left",
		// 기준점에서 이동하는 거리
		"offset": [10, 0],
		// 가로/세로 크기
		"size": ["100%", "100%c"],
		// ?? ?? ?
		"max_size": ["100%", "50%"],
		// 오버라이드 가능한 변수
		"$tooltip_description_offset": [-10, 0.5],

		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"stack_panel": {
					// 줄맞춤 컨테이너: 가로/세로로 자동 배치
					"type": "stack_panel",
					// 가로/세로 크기
					"size": ["100%", "100%c"],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left",

					// 오버라이드 가능한 변수
					"$tooltip_collection_name": "left_helper_collection",
					// 오버라이드 가능한 변수
					"$tooltip_collection_prefix": "left_helpers",
					// 목록 이름
					"collection_name": "$tooltip_collection_name",
					// 오버라이드 가능한 변수
					"$tooltip_helper_description_size": ["default", 10],
					// 목록 아이템을 자동으로 생성
					"factory": {
						// ?? ??
						"name": "left_tooltip_factory",
						// ??? ???
						"control_name": "hud.mixed_tooltip_helper"
					},
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "(not #emote_tips_visible)",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible",
							// 게임이 주는 전역 값 연결
							"binding_type": "global"
						},
						{
							// 가져올 값 이름
							"binding_name": "#left_helper_count",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#collection_length"
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"emote_label_background": {
		// 이미지 표시
		"type": "image",
		// 가로/세로 크기
		"size": [100, 24],
		// 사용할 이미지 경로
		"texture": "textures/ui/Black",
		// ???
		"alpha": 0.7,
		// 겹치는 순서(숫자 클수록 위)
		"layer": 0
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"emote_tip@hud.emote_label_background": {
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"emote_keyboard_centerer": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": [100, 26],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"emote_keyboard_helper@common.keyboard_helper_keys": {
								// 겹치는 순서(숫자 클수록 위)
								"layer": 100,
								// 오버라이드 가능한 변수
								"$icon_size_panel": [17, "100%"],
								// 오버라이드 가능한 변수
								"$keyboard_helper_size": [96, 24], // 96 to create a small horizontal margin in the 100 size panel
								// 오버라이드 가능한 변수
								"$keyboard_character": "$keyboard_keyname",
								// 오버라이드 가능한 변수
								"$text_color": "$generic_button_text_color",
								// 오버라이드 가능한 변수
								"$description_bind": "$emote_tip_description",
								// 오버라이드 가능한 변수
								"$keyboard_description_max_size": [79, "100%"] // 79 To account for the size of the image
							}
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"emote_gamepad_helper@$gamepad_helper_button_name": {
					// 오버라이드 가능한 변수
					"$icon_description_bind": "$emote_tip_description",
					// 오버라이드 가능한 변수
					"$gamepad_description_max_size": [79, 24], // 79 To account for the size of the image
					// 기준점(어디에서 시작할지)
					"anchor_from": "left_middle",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "left_middle",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#is_using_gamepad",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"emote_expediate_helpers": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 기준점(어디에서 시작할지)
		"anchor_from": "bottom_left",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "bottom_left",
		// 가로/세로 크기
		"size": ["100%", "100%c"],
		// ?? ?? ?
		"max_size": ["100%", "50%"],

		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"stack_panel": {
					// 줄맞춤 컨테이너: 가로/세로로 자동 배치
					"type": "stack_panel",
					// 가로/세로 크기
					"size": ["100%", "100%c"],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_left",

					// 오버라이드 가능한 변수
					"$gamepad_helper_visible_binding_type": "none",

					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"emote_tip_0@hud.emote_tip": {
								// 오버라이드 가능한 변수
								"$keyboard_keyname": "keyboard.keyname.1",
								// 오버라이드 가능한 변수
								"$emote_tip_description": "#button_emote_0_description",
								// 오버라이드 가능한 변수
								"$gamepad_helper_button_name": "common.gamepad_helper_y"
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"emote_tip_1@hud.emote_tip": {
								// 오버라이드 가능한 변수
								"$keyboard_keyname": "keyboard.keyname.2",
								// 오버라이드 가능한 변수
								"$emote_tip_description": "#button_emote_1_description",
								// 오버라이드 가능한 변수
								"$gamepad_helper_button_name": "common.gamepad_helper_b"
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"emote_tip_2@hud.emote_tip": {
								// 오버라이드 가능한 변수
								"$keyboard_keyname": "keyboard.keyname.3",
								// 오버라이드 가능한 변수
								"$emote_tip_description": "#button_emote_2_description",
								// 오버라이드 가능한 변수
								"$gamepad_helper_button_name": "common.gamepad_helper_a"
							}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"emote_tip_3@hud.emote_tip": {
								// 오버라이드 가능한 변수
								"$keyboard_keyname": "keyboard.keyname.4",
								// 오버라이드 가능한 변수
								"$emote_tip_description": "#button_emote_3_description",
								// 오버라이드 가능한 변수
								"$gamepad_helper_button_name": "common.gamepad_helper_x"
							}
						}
					]
				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#emote_tips_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			}
		]
	},

	// ???/?? ??
	"right_helpers": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 기준점(어디에서 시작할지)
		"anchor_from": "bottom_right",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "bottom_right",
		// 가로/세로 크기
		"size": ["fill", "100%c"],
		// ?? ?? ?
		"max_size": ["100%", "50%"],
		// 오버라이드 가능한 변수
		"$tooltip_description_offset": [-10, 0.5],

		// 조건에 따라 변수 값을 바꾸기
		"variables": [
			{
				// 이 조건이 맞으면 적용
				"requires": "$education_edition",
				// 오버라이드 가능한 변수
				"$tip_description_background_visible": true,
				// 오버라이드 가능한 변수
				"$tip_description_background_offset": [0, 0],
				// 오버라이드 가능한 변수
				"$tooltip_helper_description_shadow": false
			}
		],

		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"stack_panel": {
					// 줄맞춤 컨테이너: 가로/세로로 자동 배치
					"type": "stack_panel",
					// 가로/세로 크기
					"size": ["100%cm", "100%c"],
					// ?? ?? ?
					"min_size": [75, "100%c"],
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_right",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_right",

					// 오버라이드 가능한 변수
					"$tooltip_collection_name": "right_helper_collection",
					// 오버라이드 가능한 변수
					"$tooltip_collection_prefix": "right_helpers",
					// 목록 이름
					"collection_name": "$tooltip_collection_name",
					// 오버라이드 가능한 변수
					"$tooltip_helper_description_size": ["default", 10],
					// 목록 아이템을 자동으로 생성
					"factory": {
						// ?? ??
						"name": "right_tooltip_factory",
						// ??? ???
						"control_name": "hud.mixed_tooltip_helper_form_fitting"
					},
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#right_helper_count",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#collection_length"
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"boss_health_panel": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": [182, 20],
		// 기준점(어디에서 시작할지)
		"anchor_from": "top_middle",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "top_middle",
		// 오버라이드 가능한 변수
		"$progress_bar_collection": "boss_bars",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"boss_name@boss_name_panel": {}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"progress_bar_for_collections@common.progress_bar_for_collections": {
					// 기준점에서 이동하는 거리
					"offset": [0, 10]
				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#bar_visible",
				// 목록 데이터를 반복 연결
				"binding_type": "collection",
				// 목록 이름
				"binding_collection_name": "boss_bars",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible"
			}
		]
	},

	// ???/?? ??
	"boss_health_grid": {
		// 격자 컨테이너: 칸칸이 배치
		"type": "grid",
		// ??? ?? ?
		"grid_dimension_binding": "#boss_grid_dimension",
		// ??? ?? ?
		"grid_item_template": "hud.boss_health_panel",
		// ??? ?? ?
		"grid_fill_direction": "vertical",
		// 목록 이름
		"collection_name": "boss_bars",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "top_middle",
		// 기준점(어디에서 시작할지)
		"anchor_from": "top_middle",
		// 가로/세로 크기
		"size": [182, "30%"],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "(not #on_new_death_screen)",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible"
			}
		]
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"wysiwyg_reset_modal_ok@library_modal.modal_button": {
		// 오버라이드 가능한 변수
		"$button_mapping": "button.confirm_reset",
		// 오버라이드 가능한 변수
		"$button_text": "hudScreen.controlCustomization.resetConfirm"
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"wysiwyg_reset_modal_cancel@library_modal.modal_button": {
		// 오버라이드 가능한 변수
		"$button_mapping": "button.cancel_reset",
		// 오버라이드 가능한 변수
		"$button_text": "hudScreen.controlCustomization.resetCancel"
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"wysiwyg_close_without_saving_modal_ok@library_modal.modal_button": {
		// 오버라이드 가능한 변수
		"$button_mapping": "button.confirm_close_without_saving",
		// 오버라이드 가능한 변수
		"$button_text": "hudScreen.controlCustomization.closeWithoutSavingConfirm"
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"wysiwyg_close_without_saving_modal_cancel@library_modal.modal_button": {
		// 오버라이드 가능한 변수
		"$button_mapping": "button.cancel_close_without_saving",
		// 오버라이드 가능한 변수
		"$button_text": "hudScreen.controlCustomization.closeWithoutSavingCancel"
	},

/*
  Hi there!
  -
  I did my best to explain how UI actually works, hoping it will help anyone that is interested of how my UI elements works -
  So i hope you have learned something from my addon codes that could make you a better addons developer!
  -
  Make sure to join my discord server <  https://discord.com/invite/DfXSekP8T3  > if you have any suggestions for future addons.
  Also make sure to report all bugs you might find, so i can fix it as soon as possible!
  Keep in mind that most of the bugs is actually from the game and I don't have the ability to fix them.
  -
  Have a good day!
*/
//   "hud_title_text/title_frame/title":{"modifications":[{"array_name":"bindings","operation":"insert_back","value":[{"binding_type":"view","source_property_name":"((#text - 'xHydTB:' - 'xEhydTB:') = #text)","target_property_name":"#visible"}]}]},
  // ^ Used to hide a specific type of titles. ^
  // ^ Used to move up the rideable mobs health. ^

//   "centered_gui_elements_at_bottom_middle":{"modifications":[{"array_name":"controls","operation":"insert_front","value":[{"thirstbar_background@hud.thirstbar_background":{"anchor_from":"bottom_middle","anchor_to":"bottom_middle","offset":[50,-42.5]}},{"thirstbar_effect_panel@hud.thirstbar_effect_panel":{"anchor_from":"bottom_middle","anchor_to":"bottom_middle","offset":[50,-42.5]}}]}]},
  // ^ Used to render the UI elements correctly for pc users. ^

//   "thirstbar_background":{// Used to add the thirst bar background to the hud UI.
//     "type":"image",
//     "texture":"textures/ui/muck/hp_empty",
//     "size":[43,37],// Note* the image size needs to match the actual size of the texture, if it was 16×16, the image size needs to be [16,16] otherwise the progress bar will be glitched.
//     "bindings":[{"binding_name":"#show_survival_ui","binding_name_override":"#visible"}],// This will make the element visible only on survival.
//     "controls":[{"thirstbar_progress@thirstbar_progress":{}}]// Needed to render the thirst bar.
//   },
//   "thirstbar_progress":{
//     "type":"image",
//     "texture":"textures/ui/muck/hp_full",
//     "size":["100%","100%"],// Making sure that the thirst progress bar size will match the thirst background.
//     "layer":1,// Making it appear above the background.
//     "$max_health":20.0,// Used to update the filling quantity of the thirst bar, being 20 is a full bar, 10 is a half bar and 0 being empty.
//     "clip_direction":"right",
//     "clip_pixelperfect":false,
//     "bindings":[
//       {
//         "binding_type":"view",
//         "source_control_name":"thirstbar_control",// Needed to update the thirst bar quantity.
//         "source_property_name":"((#preserved_text - $update_string) * 1)",
//         "target_property_name":"#health"
//       },
//       {
//         "binding_type":"view",
//         "source_property_name":"(($max_health - #health) / $max_health)",
//         "target_property_name":"#clip_ratio"
//       }
//     ]
//   },
//   "thirstbar_effect_panel":{// Used to apply a new UI element to the screen after a specific title has been sent.
//     "type":"panel",
//     "size":[79,9],
//     "controls":[
//       {
//         "thirstbar_effect_background":{
//           "type":"image",
//           "texture":"textures/ui/Black",
//           "bindings":[// It's hidden by default.
//             {"binding_name":"#show_survival_ui"},
//             {
//               "binding_type":"view",
//               "source_control_name":"thirstbar_effect_control",
//               "source_property_name":"('@' + #preserved_text - $update_text = '@true')",// Showing up the effected bar when the title has the needed words along with 'true', so any titles that has the needed words but without 'true' will cause the effected bar to hide.
//               "target_property_name":"#is_visible"
//             },
//             {
//               "binding_type":"view",
//               "source_property_name":"(#show_survival_ui and #is_visible)",
//               "target_property_name":"#visible"
//             }
//           ],
//           "controls":[{"thirstbar_effect_progress@thirstbar_effect_progress":{}}]
//         }
//       },
//       {
//         "thirstbar_effect_control":{
//           "type":"panel",
//           "bindings":[
//             {"binding_name":"#hud_title_text_string"},
//             {
//               "binding_name":"#hud_title_text_string",
//               "binding_name_override":"#preserved_text",
//               "binding_condition":"visibility_changed"
//             },
//             {
//               "binding_type":"view",
//               "source_property_name":"(not ('@' + #hud_title_text_string = '@' + #preserved_text) and not (('@' + #hud_title_text_string - $update_text) = '@' + #hud_title_text_string))",
//               "target_property_name":"#visible"
//             }
//           ]
//         }
//       }
//     ]
//   },
//   "thirstbar_effect_progress":{// The same exact system as the thirst progress bar, but with the effected texture, there is a better way to do it by changing the image texture using bindings and controls, but i haven't figured out how.
//     "type":"image",
//     "texture":"textures/ui/Black",
//     "size":["100%","100%"],
//     "layer":2,
//     "$max_health":20.0,
//     "clip_direction":"right",
//     "clip_pixelperfect":false,
//     "bindings":[
//       {
//         "binding_type":"view",
//         "source_control_name":"thirstbar_control",
//         "source_property_name":"((#preserved_text - $update_string) * 1)",
//         "target_property_name":"#health"
//       },
//       {
//         "binding_type":"view",
//         "source_property_name":"(($max_health - #health) / $max_health)",
//         "target_property_name":"#clip_ratio"
//       }
//     ]
//   },
//   "thirstbar_renderer":{// Used to change the offset of the thirst bar depending on the screen panel type (desktop or pocket).
//     "type":"panel",
//     "$ignore_desktop":true,
//     "$ignore_pocket":false,// By default it's visible only for pocket users.
//     "variables":[
//       {
//         "requires":"$desktop_screen",
//         "$ignore_desktop":false,
//         "$ignore_pocket":true// Now it's visible only for desktop users.
//       }
//     ],
//     "bindings":[{"binding_name":"(not (#hud_visible_centered))","binding_name_override":"#visible"}],// Used to hide the mobile UI elements for pc users.
//     "controls":[// Used to change the offset of the thirst bar (desktop or pocket).
//       {"desktop_hud@thirstbar_background":{"ignored":"$ignore_desktop","anchor_from":"bottom_middle","anchor_to":"bottom_middle","offset":[60,-42.5]}},{"desktop_effect_hud@thirstbar_effect_panel":{"ignored":"$ignore_desktop","anchor_from":"bottom_middle","anchor_to":"bottom_middle","offset":[60,-42.5]}},
//       {"pocket_hud@thirstbar_background":{"ignored":"$ignore_pocket","anchor_from":"top_right","anchor_to":"top_right","offset":[-3,12.5]}},{"pocket_effect_hud@thirstbar_effect_panel":{"ignored":"$ignore_pocket","anchor_from":"top_right","anchor_to":"top_right","offset":[-3,12.5]}}
//     ]
//   },
	"hud_title_text/title_frame/title": {
		// ?? ?? ??
		"modifications": [
			{
				// ?? ?? ??
				"array_name": "bindings",
				// ?? ??
				"operation": "insert_back",
				// ??? ?
				"value": [
					{
						// 계산/조건 결과를 연결
						"binding_type": "view",
						// 계산식/참조 값
						"source_property_name": "(#text = 'hide title')",
						// 결과가 들어갈 속성
						"target_property_name": "#visible"
					}
				]
			}
		]
	},
	// ???/?? ??
	"root_panel": {
	// 	    "$update_string":"xHydTB:",// Needed to update the effected bar filling quantity.
    // "$update_text":"xEhydTB:",// Needed to hide/show the effected bar.
		"modifications": [
			{
				// ?? ?? ??
				"array_name": "controls",
				// ?? ??
				"operation": "insert_back",
				// ??? ?
				"value": [
					// {
					// 	"bars_factory@custom_hud.bars_factory": {}
					// }
					// ,
					// {
						// "bossbar_bar_factory@hud_bossbar.bossbar_bar_factory": {}
					// }
				]
			}
		],
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 오버라이드 가능한 변수
		"$xp_control_offset|default": [0, -13],
		// 조건에 따라 변수 값을 바꾸기
		"variables": [
			{
				// 이 조건이 맞으면 적용
				"requires": "$education_edition",
				// 오버라이드 가능한 변수
				"$left_helpers": "hud.left_helpers_edu"
			},
			{
				// 이 조건이 맞으면 적용
				"requires": "(not $education_edition)",
				// 오버라이드 가능한 변수
				"$left_helpers": "hud.left_helpers"
			}
		],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"preserved_title_display": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 오버라이드 가능한 변수
					"$upd_str": "powerup_update",
					// 가로/세로 크기
					"size": ["100%c", "100%c"],
					// 기준점에서 이동하는 거리
					"offset": [-20, 20],
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_right",
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_right",
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"title_text": {
								// 글자 표시
								"type": "label",
								// 보여줄 글자
								"text": "#text",
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_control",
										// 계산식/참조 값
										"source_property_name": "(#preserved_text - $upd_str)",
										// 결과가 들어갈 속성
										"target_property_name": "#text",
										// ?? ??
										"resolve_sibling_scope": true
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_control",
										// 계산식/참조 값
										"source_property_name": "(not (#preserved_text = $upd_str))",
										// 결과가 들어갈 속성
										"target_property_name": "#visible",
										// ?? ??
										"resolve_sibling_scope": true
									}
								],
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"title_bg": {
											// 이미지 표시
											"type": "image",
											// 사용할 이미지 경로
											"texture": "textures/ui/hud_tip_text_background",
											// 가로/세로 크기
											"size": [
												"100% + 10px",
												"100% + 4px"
											],
											// ?? ??
											"fill": true,
											// ???
											"alpha": 0.5,
											// 겹치는 순서(숫자 클수록 위)
											"layer": -1
										}
									}
								]
							}
						},
						{
							// ???/?? ??
							"data_control": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": [0, 0],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#hud_title_text_string"
									},
									{
										// 가져올 값 이름
										"binding_name": "#hud_title_text_string",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#preserved_text",
										// ?? ???
										"binding_condition": "visibility_changed"
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(not (#hud_title_text_string = #preserved_text) and not ((#hud_title_text_string - $upd_str) = #hud_title_text_string))",
										// 결과가 들어갈 속성
										"target_property_name": "#visible"
									}
								]
							}
						}
					]
				}
			},
			{
				// ???/?? ??
				"preserved_title_display2": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 오버라이드 가능한 변수
					"$upd_str2": "scoreboard",
					// 가로/세로 크기
					"size": ["100%c", "100%c"],
					// 기준점에서 이동하는 거리
					"offset": [5, 0],
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "left_middle",
					// 기준점(어디에서 시작할지)
					"anchor_from": "left_middle",
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"title_text2": {
								// 글자 표시
								"type": "label",
								// 보여줄 글자
								"text": "#text",
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_control2",
										// 계산식/참조 값
										"source_property_name": "(#preserved_text2 - $upd_str2)",
										// 결과가 들어갈 속성
										"target_property_name": "#text",
										// ?? ??
										"resolve_sibling_scope": true
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_control2",
										// 계산식/참조 값
										"source_property_name": "(not (#preserved_text2 = $upd_str2))",
										// 결과가 들어갈 속성
										"target_property_name": "#visible",
										// ?? ??
										"resolve_sibling_scope": true
									}
								],
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"title_bg2": {
											// 이미지 표시
											"type": "image",
											// 사용할 이미지 경로
											"texture": "textures/ui/Black",
											// 가로/세로 크기
											"size": [
												"100% + 10px",
												"100% + 4px"
											],
											// ?? ??
											"fill": true,
											// ???
											"alpha": 0.5,
											// 겹치는 순서(숫자 클수록 위)
											"layer": -1
										}
									}
								]
							}
						},
						{
							// ???/?? ??
							"data_control2": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": [0, 0],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#hud_title_text_string"
									},
									{
										// 가져올 값 이름
										"binding_name": "#hud_title_text_string",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#preserved_text2",
										// ?? ???
										"binding_condition": "visibility_changed"
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(not (#hud_title_text_string = #preserved_text2) and not ((#hud_title_text_string - $upd_str2) = #hud_title_text_string))",
										// 결과가 들어갈 속성
										"target_property_name": "#visible"
									}
								]
							}
						}
					]
				}
			},
			{
				// ???/?? ??
				"preserved_title_display3": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 오버라이드 가능한 변수
					"$upd_str3": "top",
					// 가로/세로 크기
					"size": ["100%c", "100%c"],
					// 기준점에서 이동하는 거리
					"offset": [0, 20],
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_middle",
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_middle",
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"title_text3": {
								// 글자 표시
								"type": "label",
								// 보여줄 글자
								"text": "#text",
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_control3",
										// 계산식/참조 값
										"source_property_name": "(#preserved_text3 - $upd_str3)",
										// 결과가 들어갈 속성
										"target_property_name": "#text",
										// ?? ??
										"resolve_sibling_scope": true
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_control3",
										// 계산식/참조 값
										"source_property_name": "(not (#preserved_text3 = $upd_str3))",
										// 결과가 들어갈 속성
										"target_property_name": "#visible",
										// ?? ??
										"resolve_sibling_scope": true
									}
								],
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"title_bg3": {
											// 이미지 표시
											"type": "image",
											// 사용할 이미지 경로
											"texture": "textures/ui/hud_tip_text_background",
											// 가로/세로 크기
											"size": [
												"100% + 10px",
												"100% + 4px"
											],
											// ?? ??
											"fill": true,
											// ???
											"alpha": 0.5,
											// 겹치는 순서(숫자 클수록 위)
											"layer": -1
										}
									}
								]
							}
						},
						{
							// ???/?? ??
							"data_control3": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": [0, 0],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#hud_title_text_string"
									},
									{
										// 가져올 값 이름
										"binding_name": "#hud_title_text_string",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#preserved_text3",
										// ?? ???
										"binding_condition": "visibility_changed"
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(not (#hud_title_text_string = #preserved_text3) and not ((#hud_title_text_string - $upd_str3) = #hud_title_text_string))",
										// 결과가 들어갈 속성
										"target_property_name": "#visible"
									}
								]
							}
						}
					]
				}
			},
			// {
			// 	"preserved_title_display4": {
			// 		"type": "panel",
			// 		"$upd_str4": "main_stats",
			// 		"size": ["100%c", "100%c"],
			// 		"offset": [0, 0],
			// 		"anchor_to": "bottom_right",
			// 		"anchor_from": "bottom_right",
			// 		"controls": [
			// 			{
			// 				"title_text4": {
			// 					"type": "label",
			// 					"text": "#text",
			// 					"bindings": [
			// 						{
			// 							"binding_type": "view",
			// 							"source_control_name": "data_control4",
			// 							"source_property_name": "(#preserved_text4 - $upd_str4)",
			// 							"target_property_name": "#text",
			// 							"resolve_sibling_scope": true
			// 						},
			// 						{
			// 							"binding_type": "view",
			// 							"source_control_name": "data_control4",
			// 							"source_property_name": "(not (#preserved_text4 = $upd_str4))",
			// 							"target_property_name": "#visible",
			// 							"resolve_sibling_scope": true
			// 						}
			// 					]
			// 					,
			// 					"controls": [
			// 						{
			// 							"title_bg4": {
			// 								"type": "image",
			// 								"texture": "textures/ui/hud_tip_text_background",
			// 								"size": [
			// 									"100% + 10px",
			// 									"100% + 4px"
			// 								],
			// 								"fill": true,
			// 								"alpha": 0.5,
			// 								"layer": -1
			// 							}
			// 						}
			// 					]
			// 				}
			// 			},
			// 			{
			// 				"data_control4": {
			// 					"type": "panel",
			// 					"size": [0, 0],
			// 					"bindings": [
			// 						{
			// 							"binding_name": "#hud_title_text_string"
			// 						},
			// 						{
			// 							"binding_name": "#hud_title_text_string",
			// 							"binding_name_override": "#preserved_text4",
			// 							"binding_condition": "visibility_changed"
			// 						},
			// 						{
			// 							"binding_type": "view",
			// 							"source_property_name": "(not (#hud_title_text_string = #preserved_text4) and not ((#hud_title_text_string - $upd_str4) = #hud_title_text_string))",
			// 							"target_property_name": "#visible"
			// 						}
			// 					]
			// 				}
			// 			}
			// 		]
			// 	}
			// },
			{
				// ???/?? ??
				"preserved_title_display5": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 오버라이드 가능한 변수
					"$upd_str5": "barbar",
					// 가로/세로 크기
					"size": ["100%c", "100%c"],
					// 기준점에서 이동하는 거리
					"offset": [0, -20],
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_middle",
					// 기준점(어디에서 시작할지)
					"anchor_from": "bottom_middle",
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"title_bg5": {
								// 이미지 표시
								"type": "image",
								// 겹치는 순서(숫자 클수록 위)
								"layer": -1,
								// 오버라이드 가능한 변수
								"$one": 1,
		// 가로/세로 크기
		"size": [
			162,
			13
		],
								// 오버라이드 가능한 변수
								"$max_bossbar": 100.0,
								// ??? ?? ?
								"allow_clipping": true,
								// ??? ??
								"clip_direction": "left",
								// ?? ??
								"clip_pixelperfect": false,
								// 사용할 이미지 경로
								"texture": "textures/ui/muck/hp_full"
								,
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_control5",
										// 계산식/참조 값
										"source_property_name": "((#health) * $one)",
										// 결과가 들어갈 속성
										"target_property_name": "#num",
										// ?? ??
										"resolve_sibling_scope": true
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(($max_bossbar - #num) / $max_bossbar)",
										// 결과가 들어갈 속성
										"target_property_name": "#clip_ratio",
										// ?? ??
										"resolve_sibling_scope": true
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_control5",
										// 계산식/참조 값
										"source_property_name": "(not (#preserved_text5 = $upd_str5))",
										// 결과가 들어갈 속성
										"target_property_name": "#visible",
										// ?? ??
										"resolve_sibling_scope": true
									}
								],
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"background": {
													// 가로/세로 크기
													"size": [
			162,
			13
		],
											// 이미지 표시
											"type": "image",
											// 겹치는 순서(숫자 클수록 위)
											"layer": -2,
											// 사용할 이미지 경로
											"texture": "textures/ui/muck/hp_empty"
										}
									}
								]
							}
						},
							{
										// 보여줄 글자
										"text": {
											// 글자 표시
											"type": "label",
											// 겹치는 순서(숫자 클수록 위)
											"layer": 1,
											// 보여줄 글자
											"text": "#text"
											,
											// "font_type": "smooth",
											"bindings": [
																					{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_control5",
										// 계산식/참조 값
										"source_property_name": "(#health_number)",
										// 결과가 들어갈 속성
										"target_property_name": "#num",
										// ?? ??
										"resolve_sibling_scope": true
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "#num",
										// 결과가 들어갈 속성
										"target_property_name": "#text",
										// ?? ??
										"resolve_sibling_scope": true
									}
											]
										}
									},
						{
							// ???/?? ??
							"title_bg6": {
								// 이미지 표시
								"type": "image",
								// 겹치는 순서(숫자 클수록 위)
								"layer": -1,
								// 오버라이드 가능한 변수
								"$one": 1,
		// 가로/세로 크기
		"size": [
			162,
			13
		],
								// 기준점에서 이동하는 거리
								"offset": [0, 15],
								// 오버라이드 가능한 변수
								"$max_bossbar": 100.0,
								// ??? ?? ?
								"allow_clipping": true,
								// ??? ??
								"clip_direction": "left",
								// ?? ??
								"clip_pixelperfect": false,
								// 사용할 이미지 경로
								"texture": "textures/ui/muck/hunger_full"
								,
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_control5",
										// 계산식/참조 값
										"source_property_name": "((#hunger) * $one)",
										// 결과가 들어갈 속성
										"target_property_name": "#num",
										// ?? ??
										"resolve_sibling_scope": true
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(($max_bossbar - #num) / $max_bossbar)",
										// 결과가 들어갈 속성
										"target_property_name": "#clip_ratio",
										// ?? ??
										"resolve_sibling_scope": true
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_control5",
										// 계산식/참조 값
										"source_property_name": "(not (#preserved_text5 = $upd_str5))",
										// 결과가 들어갈 속성
										"target_property_name": "#visible",
										// ?? ??
										"resolve_sibling_scope": true
									}
								],
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"background": {
													// 가로/세로 크기
													"size": [
			162,
			13
		],
											// 이미지 표시
											"type": "image",
											// 겹치는 순서(숫자 클수록 위)
											"layer": -2,
											// 사용할 이미지 경로
											"texture": "textures/ui/muck/hunger_empty"
										}
									}
								]
							}
						},
						{
							// ???/?? ??
							"title_bg7": {
								// 이미지 표시
								"type": "image",
								// 겹치는 순서(숫자 클수록 위)
								"layer": -1,
								// 오버라이드 가능한 변수
								"$one": 1,
		// 가로/세로 크기
		"size": [
			162,
			13
		],
								// 기준점에서 이동하는 거리
								"offset": [0, 30],
								// 오버라이드 가능한 변수
								"$max_bossbar": 100.0,
								// ??? ?? ?
								"allow_clipping": true,
								// ??? ??
								"clip_direction": "left",
								// ?? ??
								"clip_pixelperfect": false,
								// 사용할 이미지 경로
								"texture": "textures/ui/muck/stamina_full"
								,
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_control5",
										// 계산식/참조 값
										"source_property_name": "((#stamina) * $one)",
										// 결과가 들어갈 속성
										"target_property_name": "#num",
										// ?? ??
										"resolve_sibling_scope": true
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(($max_bossbar - #num) / $max_bossbar)",
										// 결과가 들어갈 속성
										"target_property_name": "#clip_ratio",
										// ?? ??
										"resolve_sibling_scope": true
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_control5",
										// 계산식/참조 값
										"source_property_name": "(not (#preserved_text5 = $upd_str5))",
										// 결과가 들어갈 속성
										"target_property_name": "#visible",
										// ?? ??
										"resolve_sibling_scope": true
									}
								],
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"background": {
													// 가로/세로 크기
													"size": [
			162,
			13
		],
											// 이미지 표시
											"type": "image",
											// 겹치는 순서(숫자 클수록 위)
											"layer": -2,
											// 사용할 이미지 경로
											"texture": "textures/ui/muck/hunger_empty"
										}
									}
								]
							}
						},
						{
							// ???/?? ??
							"data_control5": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": [0, 0],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#hud_title_text_string"
									},
									{
										// 가져올 값 이름
										"binding_name": "#hud_title_text_string",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#preserved_text5",
										// ?? ???
										"binding_condition": "visibility_changed"
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_control5",
										// 계산식/참조 값
										"source_property_name": "(#preserved_text5 - $upd_str5)",
										// 결과가 들어갈 속성
										"target_property_name": "#text"
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(#text - ':')",
										// 결과가 들어갈 속성
										"target_property_name": "#health"
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(#text - (':' + #health + ', ')",
										// 결과가 들어갈 속성
										"target_property_name": "#hunger"
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(#text - (':' + #health + ', ' + #hunger + ', ')",
										// 결과가 들어갈 속성
										"target_property_name": "#stamina"
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(#text - (':' + #health + ', ' + #hunger + ', ' + #stamina + ', ')",
										// 결과가 들어갈 속성
										"target_property_name": "#health_number"
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(not (#hud_title_text_string = #preserved_text5) and not ((#hud_title_text_string - $upd_str5) = #hud_title_text_string))",
										// 결과가 들어갈 속성
										"target_property_name": "#visible"
									}
								]
							}
						}
					]
				}
			},
			{
				// ???/?? ??
				"layout_customization_reset": {
					// 이미지 표시
					"type": "image",
					// 가로/세로 크기
					"size": ["200%", "200%"],
					// 사용할 이미지 경로
					"texture": "textures/ui/Black.png",
					// ?? ??
					"fill": true,
					// ???
					"alpha": 0.5,
					// 겹치는 순서(숫자 클수록 위)
					"layer": 50,
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"layout_customization_reset_modal@common_dialogs.main_panel_two_buttons": {
								// 가로/세로 크기
								"size": [210, 160],
								// 오버라이드 가능한 변수
								"$show_close_button": false,
								// 오버라이드 가능한 변수
								"$child_control": "library_modal.modal_text_content",
								// 오버라이드 가능한 변수
								"$top_button_panel": "hud.wysiwyg_reset_modal_ok",
								// 오버라이드 가능한 변수
								"$bottom_button_panel": "hud.wysiwyg_reset_modal_cancel",
								// 오버라이드 가능한 변수
								"$modal_text": "hudScreen.controlCustomization.resetModalText"
							}
						}
					],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#reset_modal_visible",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{
				// ???/?? ??
				"layout_customization_close_without_saving": {
					// 이미지 표시
					"type": "image",
					// 가로/세로 크기
					"size": ["200%", "200%"],
					// 사용할 이미지 경로
					"texture": "textures/ui/Black.png",
					// ?? ??
					"fill": true,
					// ???
					"alpha": 0.5,
					// 겹치는 순서(숫자 클수록 위)
					"layer": 50,
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"layout_customization_close_without_saving_modal@common_dialogs.main_panel_two_buttons": {
								// 가로/세로 크기
								"size": [210, 160],
								// 오버라이드 가능한 변수
								"$show_close_button": false,
								// 오버라이드 가능한 변수
								"$child_control": "library_modal.modal_text_content",
								// 오버라이드 가능한 변수
								"$top_button_panel": "hud.wysiwyg_close_without_saving_modal_ok",
								// 오버라이드 가능한 변수
								"$bottom_button_panel": "hud.wysiwyg_close_without_saving_modal_cancel",
								// 오버라이드 가능한 변수
								"$modal_text": "hudScreen.controlCustomization.closeWithoutSavingModalText"
							}
						}
					],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#close_without_saving_modal_visible",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"layout_customization_main_panel@hud.layout_customization_main_panel": {}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"layout_customization_sub_panel@hud.layout_customization_sub_panel": {}
			},
			{
				// ???/?? ??
				"layout_customization_hint_drag_frame": {
					// 이미지 표시
					"type": "image",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 40,
					// ??/?? ?
					"use_anchored_offset": true,
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_middle",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_middle",
					// 이 컨트롤 안에서 쓰는 임시 저장소
					"property_bag": {
						// ???/??? ?
						"#anchored_offset_value_y": 0.0
					},
					// 사용할 이미지 경로
					"texture": "textures/ui/Black",
					// 가로/세로 크기
					"size": ["100%c+5px", "100%c+2px"],
					// ???
					"alpha": 0.5,
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"layout_customization_hint_drag": {
								// 글자 표시
								"type": "label",
								// 보여줄 글자
								"text": "hudScreen.controlCustomization.hintDrag",
								// ?? (R,G,B,A)
								"color": "$f_color_format"
							}
						}
					],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#hint_drag_visible",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						},
						{
							// 가져올 값 이름
							"binding_name": "#layout_customization_hint_offset_y",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#anchored_offset_value_y",
							// ?? ???
							"binding_condition": "visible"
						}
					]
				}
			},
			{
				// ???/?? ??
				"layout_customization_hint_deselect_frame": {
					// 이미지 표시
					"type": "image",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 40,
					// ??/?? ?
					"use_anchored_offset": true,
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_middle",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_middle",
					// 이 컨트롤 안에서 쓰는 임시 저장소
					"property_bag": {
						// ???/??? ?
						"#anchored_offset_value_y": 0.0
					},
					// 사용할 이미지 경로
					"texture": "textures/ui/Black",
					// 가로/세로 크기
					"size": ["100%c+5px", "100%c+2px"],
					// ???
					"alpha": 0.5,
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"layout_customization_hint_deselect": {
								// 글자 표시
								"type": "label",
								// 보여줄 글자
								"text": "hudScreen.controlCustomization.hintDeselect",
								// ?? (R,G,B,A)
								"color": "$f_color_format"
							}
						}
					],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#hint_deselect_visible",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						},
						{
							// 가져올 값 이름
							"binding_name": "#layout_customization_hint_offset_y",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#anchored_offset_value_y",
							// ?? ???
							"binding_condition": "visible"
						}
					]
				}
			},
			{
				// ???/?? ??
				"layout_customization_hint_saved": {
					// 이미지 표시
					"type": "image",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 40,
					// ??/?? ?
					"use_anchored_offset": true,
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_middle",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_middle",
					// 이 컨트롤 안에서 쓰는 임시 저장소
					"property_bag": {
						// ???/??? ?
						"#anchored_offset_value_y": 0.0
					},
					// 사용할 이미지 경로
					"texture": "textures/ui/Black",
					// 가로/세로 크기
					"size": ["100%c+5px", "100%c+2px"],
					// ???
					"alpha": 0.5,
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"layout_customization_hint_saved": {
								// 글자 표시
								"type": "label",
								// 보여줄 글자
								"text": "hudScreen.controlCustomization.hintSaved",
								// ?? (R,G,B,A)
								"color": "$f_color_format"
							}
						}
					],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#hint_saved_visible",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						},
						{
							// 가져올 값 이름
							"binding_name": "#layout_customization_hint_offset_y",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#anchored_offset_value_y",
							// ?? ???
							"binding_condition": "visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"left_helpers@$left_helpers": {}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"right_helpers@hud.right_helpers": {}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"emote_expediate_helpers@hud.emote_expediate_helpers": {}
			},
			{"centered_gui_elements@centered_gui_elements": {}},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"centered_gui_elements_at_bottom_middle@centered_gui_elements_at_bottom_middle": {}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"centered_gui_elements_at_bottom_middle_touch@centered_gui_elements_at_bottom_middle_touch": {}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"centered_ridingvr_gui_elements@centered_gui_elements_at_bottom_middle": {
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_middle",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_middle",
					// 기준점에서 이동하는 거리
					"offset": [0, 60],
					// 가로/세로 크기
					"size": [180, 50],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#hud_visible_centered_ridingvr",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible",
							// 게임이 주는 전역 값 연결
							"binding_type": "global"
						}
					]
				}
			},
			{"not_centered_gui_elements@not_centered_gui_elements": {}},
			{
				// ???/?? ??
				"gamertag_label_for_splitscreen": {
					// 글자 표시
					"type": "label",
					// 가로/세로 크기
					"size": ["default", "default"],
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_right",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_right",
					// 기준점에서 이동하는 거리
					"offset": [-4, 4],
					// ?? (R,G,B,A)
					"color": "$hud_gamertag_color",
					// ?? ??
					"text_alignment": "right",
					// 보여줄 글자
					"text": "#gamertag",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#gamertag"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"exp_rend@exp_progress_bar_and_hotbar": {
					// for pocket
					"anchor_from": "bottom_middle",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "bottom_middle",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#hotbar_visible_not_centered",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible",
							// 게임이 주는 전역 값 연결
							"binding_type": "global"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"exp_rend_resizable@exp_progress_bar_and_hotbar_pocket": {
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#hotbar_visible_not_centered_resizable",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible",
							// 게임이 주는 전역 값 연결
							"binding_type": "global"
						}
					]
				}
			},
			{
				// ???/?? ??
				"hud_tip_text_factory": {
					// 리스트를 자동으로 생성하는 공장
					"type": "factory",
					// ??? ???
					"control_name": "@hud.hud_tip_text"
				}
			},
			{
				// ???/?? ??
				"hud_actionbar_text_area": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 목록 아이템을 자동으로 생성
					"factory": {
						// ?? ??
						"name": "hud_actionbar_text_factory",
						// 팩토리 템플릿 매핑
						"control_ids": {
							// ??? ?? ?
							"hud_actionbar_text": "hud_actionbar_text@hud.hud_actionbar_text"
						}
					}
				}
			},
			{
				// ???/?? ??
				"hud_title_text_area": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 목록 아이템을 자동으로 생성
					"factory": {
						// ?? ??
						"name": "hud_title_text_factory",
						// 팩토리 템플릿 매핑
						"control_ids": {
							// ??? ?? ?
							"hud_title_text": "hud_title_text@hud.hud_title_text"
						}
					}
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"mob_effects_renderer@mob_effects_renderer": {
					// 가로/세로 크기
					"size": ["100%", "75%"],
					// 기준점에서 이동하는 거리
					"offset": [0, 24],
					// 기준점(어디에서 시작할지)
					"anchor_from": "center",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "center",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#status_effects_visible",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{"vignette_rend@vignette_renderer": {}},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"curor_rend@cursor_renderer": {
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "(not #on_new_death_screen)",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"editor_volume_highlight_rend@editor_volume_highlight_renderer": {
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#is_editor_mode_paste_preview_visible",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"game_tip@game_tip.game_tip_factory": {}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"sidebar@scoreboard.scoreboard_sidebar": {
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#scoreboard_sidebar_visible",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"progress_rend@progress_indicator_renderer": {
					// 기준점에서 이동하는 거리
					"offset": ["50%", "50%"]
				}
			},
			{
				//We need to be able to move chat down the screen when we are in VR and riding.
				//SO use a stack panel with a padding that we can ignore at runtime as needed
				"chat_stack": {
					// 줄맞춤 컨테이너: 가로/세로로 자동 배치
					"type": "stack_panel",
					// 쌓는 방향(가로/세로)
					"orientation": "vertical",
					// 가로/세로 크기
					"size": ["40%", "100%"],
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_left",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_left",
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"paper_doll_padding": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": ["100%", 50],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#paper_doll_visible",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#visible"
									}
								]
							}
						},
						{
							// ???/?? ??
							"paper_doll_padding_living_room": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": ["100%", 30],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#paper_doll_visible_living_room",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#visible"
									}
								]
							}
						},
						{
							// ???/?? ??
							"vr_riding_chat_padding": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": ["100%", 132],
								// 보이기/숨기기(공간 유지)
								"visible": "#vr_riding", //Make this visible to move the chat panel down
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#vr_riding",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#visible"
									}
								]
							}
						},
						{
							// ???/?? ??
							"vr_chat_padding": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": ["100%", 30],
								// 보이기/숨기기(공간 유지)
								"visible": "#vr_non_riding", //Make this visible to move the chat panel down
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#vr_non_riding",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#visible"
									}
								]
							}
						},
						{
							// ???/?? ??
							"non_centered_gui_padding": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": ["100%", 32],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#hud_visible_not_centered",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#visible",
										// 게임이 주는 전역 값 연결
										"binding_type": "global"
									}
								]
							}
						},
						{"player_position@hud.player_position": {}},
						{"number_of_days_played@hud.number_of_days_played": {}},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"game_tip@game_tip.game_tip_chat_stack_factory": {
								// 가로/세로 크기
								"size": ["100%", "100%c"]
							}
						},
						{"chat_panel@hud.chat_panel": {}}
					]
				}
			},
			{
				// ???/?? ??
				"boss_health_panel": {
					// 줄맞춤 컨테이너: 가로/세로로 자동 배치
					"type": "stack_panel",
					// 쌓는 방향(가로/세로)
					"orientation": "vertical",
					// 가로/세로 크기
					"size": ["100%", "100%"],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"boss_hud_padding": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": ["100%", 20],
								// 보이기/숨기기(공간 유지)
								"visible": "#boss_hud_padding", //Make this visible to move the boss hud panel down
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#boss_hud_padding",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#visible"
									}
								]
							}
						},
						{
							// ???/?? ??
							"boss_hud_touch_padding": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": ["100%", "15%"],
								// 보이기/숨기기(공간 유지)
								"visible": "#boss_hud_touch_padding", //Make this visible to move the boss hud panel down
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#boss_hud_touch_padding",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#visible",
										// ?? ???
										"binding_condition": "always"
									}
								]
							}
						},
						{
							// ???/?? ??
							"boss_hud_panel": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// 다른 템플릿을 가져와서 확장(상속)
										"boss_health_grid@boss_health_grid": {
											// 기준점에서 이동하는 거리
											"offset": [0, 2]
										}
									}
								]
							}
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"save_icon@hud.auto_save": {}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#hud_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			},
			{
				// 가져올 값 이름
				"binding_name": "#hud_alpha",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#alpha",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			},
			{
				// 가져올 값 이름
				"binding_name": "#hud_propagate_alpha",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#propagateAlpha",
				// 게임이 주는 전역 값 연결
				"binding_type": "global"
			}
		]
	},

	// 다른 템플릿을 가져와서 확장(상속)
	"hud_screen@common.base_screen": {
		// ?? ??
		"is_showing_menu": false,
		// ?? ??
		"should_steal_mouse": true,
		// ?? ??
		"low_frequency_rendering": true,
		// ?? ??
		"absorbs_input": false,
		// ?? ??
		"send_telemetry": false,

		// 오버라이드 가능한 변수
		"$screen_animations": [
			"@common.screen_exit_animation_push_fade",
			"@common.screen_exit_animation_pop_fade",
			"@common.screen_entrance_animation_push_fade",
			"@common.screen_entrance_animation_pop_fade"
		],

		// 입력 키/버튼과 동작 연결
		"button_mappings": [
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.scoreboard",
				// 어떤 동작을 실행할지
				"to_button_id": "button.scoreboard",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.inventory_left",
				// 어떤 동작을 실행할지
				"to_button_id": "button.hotbar_inventory_left",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.inventory_right",
				// 어떤 동작을 실행할지
				"to_button_id": "button.hotbar_inventory_right",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.hide_gui",
				// 어떤 동작을 실행할지
				"to_button_id": "button.hide_gui_all",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.hide_tooltips",
				// 어떤 동작을 실행할지
				"to_button_id": "button.hide_tooltips_hud",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.hide_paperdoll",
				// 어떤 동작을 실행할지
				"to_button_id": "button.hide_paperdoll_hud",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.slot1",
				// 어떤 동작을 실행할지
				"to_button_id": "button.slot_1",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.slot2",
				// 어떤 동작을 실행할지
				"to_button_id": "button.slot_2",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.slot3",
				// 어떤 동작을 실행할지
				"to_button_id": "button.slot_3",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.slot4",
				// 어떤 동작을 실행할지
				"to_button_id": "button.slot_4",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.slot5",
				// 어떤 동작을 실행할지
				"to_button_id": "button.slot_5",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.slot6",
				// 어떤 동작을 실행할지
				"to_button_id": "button.slot_6",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.slot7",
				// 어떤 동작을 실행할지
				"to_button_id": "button.slot_7",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.slot8",
				// 어떤 동작을 실행할지
				"to_button_id": "button.slot_8",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.slot9",
				// 어떤 동작을 실행할지
				"to_button_id": "button.slot_9",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.slot0",
				// 어떤 동작을 실행할지
				"to_button_id": "button.slot_0",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.arrow_up",
				// 어떤 동작을 실행할지
				"to_button_id": "button.arrow_key",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.arrow_down",
				// 어떤 동작을 실행할지
				"to_button_id": "button.arrow_key",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.arrow_left",
				// 어떤 동작을 실행할지
				"to_button_id": "button.arrow_key",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			},
			{
				// 어떤 입력을 받을지
				"from_button_id": "button.arrow_right",
				// 어떤 동작을 실행할지
				"to_button_id": "button.arrow_key",
				// 입력 시점(pressed 등)
				"mapping_type": "global"
			}
		],
		// 오버라이드 가능한 변수
		"$screen_content": "hud.hud_content"
	},

	// ???/?? ??
	"hud_content": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 오버라이드 가능한 변수
		"$hud_size": ["100%", "100%"],
		// 오버라이드 가능한 변수
		"$hud_player_rend_desktop_offset|default": [15, 15],
		// 조건에 따라 변수 값을 바꾸기
		"variables": [
			{
				// 이 조건이 맞으면 적용
				"requires": "($is_holographic and not $is_living_room_mode)",
				// 오버라이드 가능한 변수
				"$hud_player_rend_desktop_offset": [100, 50]
			},
			{
				// 이 조건이 맞으면 적용
				"requires": "($compress_hud_width)",
				// 오버라이드 가능한 변수
				"$hud_size": ["90%", "100%"]
			}
		],
		// 가로/세로 크기
		"size": "$hud_size",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"root_panel@hud.root_panel": {}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"editor_gizmo_renderer@editor_gizmo_renderer": {
					// 완전히 제거(공간도 없음)
					"ignored": "(not $is_editor_mode_enabled)"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"camera_renderer@camera_renderer": {}
			}
		]
	},

	// ???/?? ??
	"layout_customization_main_panel_button": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": ["50%", "100%"],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"button@common_buttons.light_text_button": {
					// 오버라이드 가능한 변수
					"$new_ui_label_offset": [0, -1],
					// 가로/세로 크기
					"size": ["100%-4px", "100%-10px"],
					// 오버라이드 가능한 변수
					"$button_bindings|default": [],
					// 게임 값과 연결하는 규칙 목록
					"bindings": "$button_bindings"
				}
			}
		]
	},

	// ???/?? ??
	"layout_customization_main_panel": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 55,
		// 가로/세로 크기
		"size": [100, 100],
		// ??/?? ?
		"use_anchored_offset": true,
		// 기준점(어디에서 시작할지)
		"anchor_from": "top_middle",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "top_middle",
		// 이 컨트롤 안에서 쓰는 임시 저장소
		"property_bag": {
			// ???/??? ?
			"#anchored_offset_value_y": 0.0,
			// ???/??? ?
			"#size_binding_x": 0.0,
			// ???/??? ?
			"#size_binding_y": 0.0
		},
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"main_panel_frame": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/text_label_box",
					// ?? (R,G,B,A)
					"color": [0.6, 0.6, 0.6],
					// 가로/세로 크기
					"size": ["100%", "100%"],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"main_panel_content": {
								// 줄맞춤 컨테이너: 가로/세로로 자동 배치
								"type": "stack_panel",
								// 가로/세로 크기
								"size": ["100%-6px", "100%"],
								// 쌓는 방향(가로/세로)
								"orientation": "horizontal",
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// 다른 템플릿을 가져와서 확장(상속)
										"reset_button@hud.layout_customization_main_panel_button": {
											// 오버라이드 가능한 변수
											"$button_text": "hudScreen.controlCustomization.reset",
											// 오버라이드 가능한 변수
											"$pressed_button_name": "button.reset",
											// 오버라이드 가능한 변수
											"$button_bindings": [
												{
													// 가져올 값 이름
													"binding_name": "#wysiwyg_reset_button_enabled",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#enabled",
													// ?? ???
													"binding_condition": "visible"
												}
											],
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 가져올 값 이름
													"binding_name": "#wysiwyg_no_control_selected",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#visible"
												}
											]
										}
									},
									{
										// 다른 템플릿을 가져와서 확장(상속)
										"exit_button@hud.layout_customization_main_panel_button": {
											// 오버라이드 가능한 변수
											"$button_text": "hudScreen.controlCustomization.exit",
											// 오버라이드 가능한 변수
											"$pressed_button_name": "button.exit",
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 가져올 값 이름
													"binding_name": "#wysiwyg_no_control_selected",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#visible"
												}
											]
										}
									},
									{
										// 다른 템플릿을 가져와서 확장(상속)
										"opacity_button@hud.layout_customization_main_panel_button": {
											// 오버라이드 가능한 변수
											"$button_text": "hudScreen.controlCustomization.opacity",
											// 오버라이드 가능한 변수
											"$pressed_button_name": "button.opacity",
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 가져올 값 이름
													"binding_name": "#wysiwyg_control_selected",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#visible"
												}
											]
										}
									},
									{
										// 다른 템플릿을 가져와서 확장(상속)
										"size_button@hud.layout_customization_main_panel_button": {
											// 오버라이드 가능한 변수
											"$button_text": "hudScreen.controlCustomization.size",
											// 오버라이드 가능한 변수
											"$pressed_button_name": "button.size",
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 가져올 값 이름
													"binding_name": "#wysiwyg_control_selected",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#visible"
												}
											]
										}
									}
								]
							}
						}
					]
				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#layout_customization_main_panel_offset_y",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#anchored_offset_value_y",
				// ?? ???
				"binding_condition": "visible"
			},
			{
				// 가져올 값 이름
				"binding_name": "#layout_customization_main_panel_size_x",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#size_binding_x",
				// ?? ???
				"binding_condition": "visible"
			},
			{
				// 가져올 값 이름
				"binding_name": "#layout_customization_main_panel_size_y",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#size_binding_y",
				// ?? ???
				"binding_condition": "visible"
			},
			{
				// 가져올 값 이름
				"binding_name": "#layout_customization_main_panel_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible"
			}
		]
	},

	// ???/?? ??
	"layout_customization_option_slider": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 쌓는 방향(가로/세로)
		"orientation": "horizontal",
		// 가로/세로 크기
		"size": ["100%", "100%"],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"slider@settings_common.option_slider": {
					// 가로/세로 크기
					"size": ["fill", "100%"],
					// 오버라이드 가능한 변수
					"$label_offset": [6, 2],
					// 오버라이드 가능한 변수
					"$focus_override_right": "FOCUS_OVERRIDE_STOP",
					// 오버라이드 가능한 변수
					"$slider_binding_condition": "always_when_visible",
					// 오버라이드 가능한 변수
					"$label_bindings": [
						{
							// 가져올 값 이름
							"binding_name": "$option_label",
							// ?? ???
							"binding_condition": "always_when_visible"
						}
					]
				}
			},
			{
				// ???/?? ??
				"reset": {
					// 패널: 다른 부품을 담는 바닥판
					"type": "panel",
					// 가로/세로 크기
					"size": ["100%y", "80%"],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"reset_button@common.button": {
								// 기준점에서 이동하는 거리
								"offset": [0, 5],
								// 가로/세로 크기
								"size": ["75%", "75%"],
								// 오버라이드 가능한 변수
								"$default_texture": "textures/ui/wysiwyg_reset",
								// 오버라이드 가능한 변수
								"$hover_texture": "textures/ui/wysiwyg_reset",
								// 오버라이드 가능한 변수
								"$pressed_texture": "textures/ui/wysiwyg_reset",
								// 오버라이드 가능한 변수
								"$pressed_button_name": "button.option_reset",
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"default": {
											// 이미지 표시
											"type": "image",
											// 사용할 이미지 경로
											"texture": "$default_texture"
										}
									},
									{
										// ???/?? ??
										"hover": {
											// 이미지 표시
											"type": "image",
											// 사용할 이미지 경로
											"texture": "$hover_texture"
										}
									},
									{
										// ???/?? ??
										"pressed": {
											// 이미지 표시
											"type": "image",
											// 사용할 이미지 경로
											"texture": "$pressed_texture"
										}
									}
								]
							}
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"layout_customization_option_content": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 기준점에서 이동하는 거리
		"offset": [0, 2],
		// 가로/세로 크기
		"size": ["100%-4px", "100%-4px"],
		// 오버라이드 가능한 변수
		"$customization_option_collection_name|default": "option_items",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"scale_option@layout_customization_option_slider": {
					// 오버라이드 가능한 변수
					"$option_label": "#scale_option_slider_label",
					// 오버라이드 가능한 변수
					"$slider_name": "scale_option",
					// 오버라이드 가능한 변수
					"$slider_value_binding_name": "#scale_option",
					// 오버라이드 가능한 변수
					"$slider_tts_text_value": "#scale_option_text_value",
					// 오버라이드 가능한 변수
					"$option_enabled_binding_name": "#scale_option_enabled",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#scale_option_visible",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible",
							// 목록 데이터를 반복 연결
							"binding_type": "collection",
							// 목록 이름
							"binding_collection_name": "$customization_option_collection_name"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"opacity_option@layout_customization_option_slider": {
					// 오버라이드 가능한 변수
					"$option_label": "#opacity_option_slider_label",
					// 오버라이드 가능한 변수
					"$slider_name": "opacity_option",
					// 오버라이드 가능한 변수
					"$slider_value_binding_name": "#opacity_option",
					// 오버라이드 가능한 변수
					"$slider_tts_text_value": "#opacity_option_text_value",
					// 오버라이드 가능한 변수
					"$option_enabled_binding_name": "#opacity_option_enabled",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#opacity_option_visible",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible",
							// 목록 데이터를 반복 연결
							"binding_type": "collection",
							// 목록 이름
							"binding_collection_name": "$customization_option_collection_name"
						}
					]
				}
			},
			{
				// ???/?? ??
				"apply_to_all_toggle": {
					// 줄맞춤 컨테이너: 가로/세로로 자동 배치
					"type": "stack_panel",
					// 기준점에서 이동하는 거리
					"offset": [0, -4],
					// 쌓는 방향(가로/세로)
					"orientation": "horizontal",
					// 가로/세로 크기
					"size": ["100%", "100%"],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"checkbox_frame": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": ["100%y", "100%"],
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"checkbox_unchecked": {
											// 이미지 표시
											"type": "image",
											// 가로/세로 크기
											"size": ["50%", "50%"],
											// 사용할 이미지 경로
											"texture": "textures/ui/radio_off",
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 가져올 값 이름
													"binding_name": "(not #apply_to_all_selected)",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#visible"
												}
											]
										}
									},
									{
										// ???/?? ??
										"checkbox_checked": {
											// 이미지 표시
											"type": "image",
											// 가로/세로 크기
											"size": ["50%", "50%"],
											// 사용할 이미지 경로
											"texture": "textures/ui/radio_checked_dark",
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 가져올 값 이름
													"binding_name": "#apply_to_all_selected",
													// 가져온 값을 다른 속성으로 연결
													"binding_name_override": "#visible"
												}
											]
										}
									}
								]
							}
						},
						{
							// ???/?? ??
							"caption_frame": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"caption": {
											// 글자 표시
											"type": "label",
											// 기준점(어디에서 시작할지)
											"anchor_from": "left_middle",
											// 붙일 위치(어디에 놓을지)
											"anchor_to": "left_middle",
											// 보여줄 글자
											"text": "hudScreen.controlCustomization.applyToAll",
											// ?? (R,G,B,A)
											"color": "$f_color_format"
										}
									}
								]
							}
						}
					],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 가져올 값 이름
							"binding_name": "#apply_to_all_option_visible",
							// 가져온 값을 다른 속성으로 연결
							"binding_name_override": "#visible",
							// 목록 데이터를 반복 연결
							"binding_type": "collection",
							// 목록 이름
							"binding_collection_name": "$customization_option_collection_name"
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"layout_customization_option": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": ["100%", 1],
		// 오버라이드 가능한 변수
		"$customization_option_collection_name|default": "option_items",
		// 이 컨트롤 안에서 쓰는 임시 저장소
		"property_bag": {
			// ???/??? ?
			"#size_binding_y": 0.0
		},
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"content@layout_customization_option_content": {}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#layout_customization_option_size_y",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#size_binding_y",
				// ?? ???
				"binding_condition": "visible"
			}
		]
	},

	// ???/?? ??
	"layout_customization_sub_panel": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": [1, 1],
		// ??/?? ?
		"use_anchored_offset": true,
		// 기준점(어디에서 시작할지)
		"anchor_from": "top_middle",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "top_middle",
		// 이 컨트롤 안에서 쓰는 임시 저장소
		"property_bag": {
			// ???/??? ?
			"#anchored_offset_value_y": 0.0,
			// ???/??? ?
			"#size_binding_x": 0.0,
			// ???/??? ?
			"#size_binding_y": 0.0
		},
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"background": {
					// 이미지 표시
					"type": "image",
					// 가로/세로 크기
					"size": ["100%", "100%"],
					// 사용할 이미지 경로
					"texture": "textures/ui/text_label_box",
					// ?? (R,G,B,A)
					"color": [0.6, 0.6, 0.6],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"sub_panel_content": {
								// 격자 컨테이너: 칸칸이 배치
								"type": "grid",
								// 가로/세로 크기
								"size": ["100%", "100%"],
								// ??? ?? ?
								"grid_item_template": "hud.layout_customization_option",
								// 오버라이드 가능한 변수
								"$customization_option_collection_name|default": "option_items",
								// 목록 이름
								"collection_name": "$customization_option_collection_name",
								// ??? ?? ?
								"grid_dimension_binding": "#layout_customization_dimension",
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#layout_customization_dimension",
										// ?? ???
										"binding_condition": "visible"
									}
								]
							}
						}
					]
				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 가져올 값 이름
				"binding_name": "#layout_customization_sub_panel_offset_y",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#anchored_offset_value_y",
				// ?? ???
				"binding_condition": "visible"
			},
			{
				// 가져올 값 이름
				"binding_name": "#layout_customization_sub_panel_size_x",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#size_binding_x",
				// ?? ???
				"binding_condition": "visible"
			},
			{
				// 가져올 값 이름
				"binding_name": "#layout_customization_sub_panel_size_y",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#size_binding_y",
				// ?? ???
				"binding_condition": "visible"
			},
			{
				// 가져올 값 이름
				"binding_name": "#layout_customization_sub_panel_visible",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#visible"
			}
		]
	}
}

hud_screen.json 추가 HUD 예제 · 단일 파일

필요한 부분만 참고해서 가져가세요.

// 예제: hud_screen.json
// 분류: 추가 HUD 예제 / 단일 파일
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // ???/?? ??
  "hud_title_text/title_frame": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "title",
        // 계산식/참조 값
        "source_property_name": "((#text - 'bar:') = #text)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "increase_anim": {
    // 크기 변화
    "anim_type": "size",
    // 시작 값
    "from": [0, "100%"],
    // 끝 값
    "to": ["100%", "100%"],
    // 걸리는 시간(초)
    "duration": "$duration",
    // 움직임 곡선
    "easing": "$increase_easing"
  },

  // ???/?? ??
  "decrease_anim": {
    // 크기 변화
    "anim_type": "size",
    // 시작 값
    "from": ["100%", "100%"],
    // 끝 값
    "to": [0, "100%"],
    // 걸리는 시간(초)
    "duration": "$duration",
    // 움직임 곡선
    "easing": "$decrease_easing"
  },

  // ???/?? ??
  "trail_anim": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": "$trail_delay",
    // 다음 애니메이션으로 연결
    "next": "@hud.decrease_anim"
  },

  // ???/?? ??
  "animated_bar_image": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", "100%"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "bar_image": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": "$size_anim",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ???
          "alpha": "$bar_alpha",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 사용할 이미지 경로
          "texture": "$bar_texture"
        }
      },
      {
        // ???/?? ??
        "trail_image": {
          // 완전히 제거(공간도 없음)
          "ignored": "$ignore_trail",
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 0,
          // 가로/세로 크기
          "size": "@hud.trail_anim",
          // ???
          "alpha": "$trail_alpha",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 사용할 이미지 경로
          "texture": "$trail_texture"
        }
      }
    ]
  },

  // ???/?? ??
  "animated_progress_bar": {
    // animations
    "$duration": 0.25,
    // 오버라이드 가능한 변수
    "$trail_delay|default": 0.25,
    // 오버라이드 가능한 변수
    "$increase_easing|default": "in_out_sine",
    // 오버라이드 가능한 변수
    "$decrease_easing|default": "in_out_circ",

    // progress bar
    "$background_size|default": [80, 6],
    // 오버라이드 가능한 변수
    "$background_texture|default": "textures/ui/bar_bg",

    // 오버라이드 가능한 변수
    "$background_alpha|default": 1,
    // 오버라이드 가능한 변수
    "$bar_texture|default": "textures/ui/bar",
    // 오버라이드 가능한 변수
    "$bar_size|default": ["100% - 2px", "100% - 2px"], // 100% is the width / height of background texture ($background_size)
    // 오버라이드 가능한 변수
    "$bar_offset|default": [1, 1],
    // 오버라이드 가능한 변수
    "$bar_alpha|default": 1,

    // 오버라이드 가능한 변수
    "$ignore_trail|default": false,
    // 오버라이드 가능한 변수
    "$trail_texture|default": "textures/ui/White",
    // 오버라이드 가능한 변수
    "$trail_alpha|default": 0.6,

    // DO NOT FORGET to define these
    "$multiplier|default": 0.05, // (1 / max_value) ; max_value is the maximum value of progress bar, here 20
    // 오버라이드 가능한 변수
    "$data_source|default": "<preserved title or subtitle panel>",
    // 오버라이드 가능한 변수
    "$max_value_binding|default": "", // keep this empty if you don't want the max value to be dynamic
    // 오버라이드 가능한 변수
    "$progress_binding|default": "#value", // name of the binding that will provide the value for this progress bar

    // progress bar text
    "$ignore_text|default": false,
    // 오버라이드 가능한 변수
    "$text_color|default": [1, 1, 1],
    // 오버라이드 가능한 변수
    "$text_font_type|default": "default",
    // 오버라이드 가능한 변수
    "$text_font_scale_factor|default": 1,
    // 오버라이드 가능한 변수
    "$text_shadow|default": true,
    // 오버라이드 가능한 변수
    "$text_offset|default": [0, -12],
    // 오버라이드 가능한 변수
    "$text_size|default": ["default", "default"],
    // 오버라이드 가능한 변수
    "$text_format|default": "('§z' + $progress_binding + '/20')", // this goes in source_property_name

    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": "$background_size",
    // 오버라이드 가능한 변수
    "$one": 1.0,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "progress_bar_text": {
          // 완전히 제거(공간도 없음)
          "ignored": "$ignore_text",
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "#text",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // ?? (R,G,B,A)
          "color": "$text_color",
          // ??
          "font_type": "$text_font_type",
          // ?? ?? ??
          "font_scale_factor": "$text_font_scale_factor",
          // ?? ??
          "shadow": "$text_shadow",
          // 기준점에서 이동하는 거리
          "offset": "$text_offset",
          // 가로/세로 크기
          "size": "$text_size",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "$data_source",
              // 계산식/참조 값
              "source_property_name": "$text_format",
              // 결과가 들어갈 속성
              "target_property_name": "#text"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "bar_parent_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 기준점에서 이동하는 거리
          "offset": "$bar_offset",
          // 가로/세로 크기
          "size": "$bar_size",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "animated_bar_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 가로/세로 크기
                "size": ["100%", "100%"],
                // ??/?? ?
                "use_anchored_offset": true,
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#prev_value": 0,
                  // ???/??? ?
                  "#multiplier": "$multiplier"
                },
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 완전히 제거(공간도 없음)
                    "ignored": "($max_value_binding = '')",
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "$data_source",
                    // 계산식/참조 값
                    "source_property_name": "$max_value_binding",
                    // 결과가 들어갈 속성
                    "target_property_name": "#max_bind"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "$data_source",
                    // 계산식/참조 값
                    "source_property_name": "#visible",
                    // 결과가 들어갈 속성
                    "target_property_name": "#key"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "$data_source",
                    // 계산식/참조 값
                    "source_property_name": "$progress_binding",
                    // 결과가 들어갈 속성
                    "target_property_name": "#changed_value"
                  },
                  {
                    // 완전히 제거(공간도 없음)
                    "ignored": "($max_value_binding = '')",
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "($one / #max_bind)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#multiplier"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#prev_value * (1 - #key) + #changed_value * #key)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#prev_value"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#changed_value + (#prev_value - #changed_value) * ((#prev_value - #changed_value) < 0))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#min" // min(#prev_value, #changed_value)
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#min * #multiplier)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#anchored_offset_value_x"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "((#changed_value + #prev_value - 2 * #min) * #multiplier)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#size_binding_x"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "anim_increase": {
                      // 데이터 목록을 반복 배치
                      "type": "collection_panel",
                      // 가로/세로 크기
                      "size": ["100%", "100%"],
                      // 오버라이드 가능한 변수
                      "$size_anim": "@hud.increase_anim",
                      // 오버라이드 가능한 변수
                      "$ignore_trail": true,
                      // 목록 아이템을 자동으로 생성
                      "factory": {
                        // ?? ??
                        "name": "anim_increase",
                        // ??? ???
                        "control_name": "hud.animated_bar_image"
                      },
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "animated_bar_panel",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "((#changed_value > #prev_value) * 1)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#collection_length"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "anim_decrease": {
                      // 데이터 목록을 반복 배치
                      "type": "collection_panel",
                      // 가로/세로 크기
                      "size": ["100%", "100%"],
                      // 오버라이드 가능한 변수
                      "$size_anim": "@hud.decrease_anim",
                      // 목록 아이템을 자동으로 생성
                      "factory": {
                        // ?? ??
                        "name": "anim_decrease",
                        // ??? ???
                        "control_name": "hud.animated_bar_image"
                      },
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "animated_bar_panel",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "((#prev_value > #changed_value) * 1)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#collection_length"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "bar_panel": {
                // 이미지 표시
                "type": "image",
                // ???
                "alpha": "$bar_alpha",
                // 사용할 이미지 경로
                "texture": "$bar_texture",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 가로/세로 크기
                "size": ["100%", "100%"],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "animated_bar_panel",
                    // ?? ??
                    "resolve_sibling_scope": true,
                    // 계산식/참조 값
                    "source_property_name": "(#min * #multiplier)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#size_binding_x"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "bar_bg": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": "$background_size",
          // ???
          "alpha": "$background_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 0,
          // 사용할 이미지 경로
          "texture": "$background_texture"
        }
      }
    ]
  },

  // ???/?? ??
  "preserved_title": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [0, 0],
    // 오버라이드 가능한 변수
    "$update_string": "bar:",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#hud_title_text_string"
      },
      {
        // 가져올 값 이름
        "binding_name": "#hud_title_text_string",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#preserved_text",
        // ?? ???
        "binding_condition": "visibility_changed"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not (#hud_title_text_string = #preserved_text) and not ((#hud_title_text_string - $update_string) = #hud_title_text_string))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#preserved_text - $update_string) + 0)",
        // 결과가 들어갈 속성
        "target_property_name": "#progress"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#preserved_text - ($update_string + #progress + ',')) + 0)",
        // 결과가 들어갈 속성
        "target_property_name": "#max_value"
      }
    ]
  },

  // ???/?? ??
  "root_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [

          //usage
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "bar_1@hud.animated_progress_bar": {
              // 오버라이드 가능한 변수
              "$background_size": [120, 10],
              // 오버라이드 가능한 변수
              "$bar_size": ["100% - 11px", "100% - 6px"],
              // 오버라이드 가능한 변수
              "$bar_offset": [10, 3],
              // 기준점에서 이동하는 거리
              "offset": [0, 50],

              // 오버라이드 가능한 변수
              "$multiplier": 0.02, // 1 / 50; 50 - max amount
              // 오버라이드 가능한 변수
              "$data_source": "preserved_title",
              // 오버라이드 가능한 변수
              "$progress_binding": "#progress",

              // 오버라이드 가능한 변수
              "$text_format": "('§z' + $progress_binding + '/50')"
            }
          },

          // usage with dynamic max value
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "bar_2@hud.animated_progress_bar": {
              // 오버라이드 가능한 변수
              "$background_size": [120, 10],
              // 오버라이드 가능한 변수
              "$bar_size": ["100% - 11px", "100% - 6px"],
              // 오버라이드 가능한 변수
              "$bar_offset": [10, 3],
              // 기준점에서 이동하는 거리
              "offset": [0, 80],

              // "$multiplier": 0.02,  - no need for multiplier if you're using dynamic max value
              "$data_source": "preserved_title",
              // 오버라이드 가능한 변수
              "$progress_binding": "#progress",
              // 오버라이드 가능한 변수
              "$max_value_binding": "#max_value",

              // 오버라이드 가능한 변수
              "$text_format": "('§z' + $progress_binding + '/' + $max_value_binding)"
            }
          },

          {"preserved_title@hud.preserved_title": {}}
        ]
      }
    ]
  }
}

초보 예제 모음 22 개

Animated Progress Bar Template

_ui_defs.json 초보 예제 모음 · Animated Progress Bar Template

필요한 부분만 참고해서 가져가세요.

// 예제: _ui_defs.json
// 분류: 초보 예제 모음 / Animated Progress Bar Template
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // ???/?? ??
  "ui_defs": [
    "ui/animated_bar.json"
  ]
}

animated_bar.json 초보 예제 모음 · Animated Progress Bar Template

필요한 부분만 참고해서 가져가세요.

// 예제: animated_bar.json
// 분류: 초보 예제 모음 / Animated Progress Bar Template
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "animated_bar",

  // Notes: this is just generic template. Edit the code however you like to achieve what you want.
  // Or, if you don't wanna go through all that trouble just use it as-is :)

  "animated_progress_bar": {
    // animations
    "$duration|default": 0.2,
    // 오버라이드 가능한 변수
    "$trail_delay|default": 0.2,
    // 오버라이드 가능한 변수
    "$increase_easing|default": "out_expo", // recommended
    // 오버라이드 가능한 변수
    "$decrease_easing|default": "in_expo", // recommended

    // progress bar
    /*
      "" - a nineslice texture that can be stretched
      "fixed" - a texture that cannot be stretched (idk what to call it lol. see the example textures)
    */
    // 오버라이드 가능한 변수
    "$texture_type|default": "",
    // 오버라이드 가능한 변수
    "$fill_from|default": "left", // left, right, up, down
    // 오버라이드 가능한 변수
    "$background_size|default": [100, 10], // it's better to use your texture size
    // 오버라이드 가능한 변수
    "$background_texture|default": "textures/ui/bar_bg",
    // 오버라이드 가능한 변수
    "$background_alpha|default": 1,

    /*
      size of your progress texture
      100% is the width / height of background texture ($background_size)
      USE fixed size instead of %, if your texture isn't a nineslice texture or if it looks weird
    */
    // 오버라이드 가능한 변수
    "$bar_size|default": ["100% - 2px", "100% - 2px"],
    // 오버라이드 가능한 변수
    "$bar_texture|default": "textures/ui/bar",
    // 오버라이드 가능한 변수
    "$bar_offset|default": [1, 1], // offset from the background texture (always from top_left)
    // 오버라이드 가능한 변수
    "$bar_alpha|default": 1,

    // 오버라이드 가능한 변수
    "$ignore_trail|default": false,
    // 오버라이드 가능한 변수
    "$trail_texture|default": "textures/ui/White",
    // 오버라이드 가능한 변수
    "$trail_alpha|default": 0.6,

    // DO NOT FORGET to define these
    "$multiplier|default": 0.05, // (1 / max_value) ; max_value is the maximum value of progress bar, here 20
    // 오버라이드 가능한 변수
    "$data_source|default": "<preserved title or subtitle panel>", // see example
    // 오버라이드 가능한 변수
    "$max_value_binding|default": "", // keep this empty if you don't want the max value to be dynamic
    // 오버라이드 가능한 변수
    "$progress_binding|default": "#null", // name of the binding that will provide the value for this progress bar

    // progress bar text. these are pretty self-explanatory
    "$ignore_text|default": false,
    // 오버라이드 가능한 변수
    "$text_color|default": [1, 1, 1],
    // 오버라이드 가능한 변수
    "$text_font_type|default": "default",
    // 오버라이드 가능한 변수
    "$text_font_scale_factor|default": 1,
    // 오버라이드 가능한 변수
    "$text_shadow|default": true,
    // 오버라이드 가능한 변수
    "$text_offset|default": [0, -12],
    // 오버라이드 가능한 변수
    "$text_anchor|default": "center",
    // 오버라이드 가능한 변수
    "$text_size|default": ["default", "default"],
    // 오버라이드 가능한 변수
    "$text_format|default": "('§z' + $progress_binding + '/20')", // this goes in source_property_name

    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": "$background_size",
    // 오버라이드 가능한 변수
    "$one": 1.0,

    // do not change :)
    "$_fixed|default": "",
    // 오버라이드 가능한 변수
    "$_direction|default": "",
    // 오버라이드 가능한 변수
    "$_anchor|default": "top_left",
    // 오버라이드 가능한 변수
    "$_size_binding|default": "#size_binding_x",
    // 조건에 따라 변수 값을 바꾸기
    "variables": [
      {
        // 이 조건이 맞으면 적용
        "requires": "($texture_type = 'fixed')",
        // 오버라이드 가능한 변수
        "$_fixed": "__fixed"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "($fill_from = 'right')",
        // 오버라이드 가능한 변수
        "$_anchor": "top_right"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "($fill_from = 'up')",
        // 오버라이드 가능한 변수
        "$_size_binding": "#size_binding_y",
        // 오버라이드 가능한 변수
        "$_direction": "__vertical"
      },
      {
        // 이 조건이 맞으면 적용
        "requires": "($fill_from = 'down')",
        // 오버라이드 가능한 변수
        "$_size_binding": "#size_binding_y",
        // 오버라이드 가능한 변수
        "$_direction": "__vertical",
        // 오버라이드 가능한 변수
        "$_anchor": "bottom_left"
      }
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {"progress_bar_text_cx0": {
        // 완전히 제거(공간도 없음)
        "ignored": "$ignore_text",
        // 글자 표시
        "type": "label",
        // 보여줄 글자
        "text": "#text",
        // 겹치는 순서(숫자 클수록 위)
        "layer": 2,
        // 기준점(어디에서 시작할지)
        "anchor_from": "$text_anchor",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "$text_anchor",
        // ?? (R,G,B,A)
        "color": "$text_color",
        // ??
        "font_type": "$text_font_type",
        // ?? ?? ??
        "font_scale_factor": "$text_font_scale_factor",
        // ?? ??
        "shadow": "$text_shadow",
        // 기준점에서 이동하는 거리
        "offset": "$text_offset",
        // 가로/세로 크기
        "size": "$text_size",
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
          {
            // 계산/조건 결과를 연결
            "binding_type": "view",
            // ?? ??
            "source_control_name": "$data_source",
            // 계산식/참조 값
            "source_property_name": "$text_format",
            // 결과가 들어갈 속성
            "target_property_name": "#text"
          }
        ]
      }},
      {
        // ???/?? ??
        "bar_parent_panel_cx0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 기준점에서 이동하는 거리
          "offset": "$bar_offset",
          // 가로/세로 크기
          "size": "$bar_size",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "animated_bar_panel_cx1": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$_anchor",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$_anchor",
                // 가로/세로 크기
                "size": ["100%", "100%"],
                // 오버라이드 가능한 변수
                "$control_name": "('animated_bar.animated_bar_image' + $_fixed)",
                // 이 컨트롤 안에서 쓰는 임시 저장소
                "property_bag": {
                  // ???/??? ?
                  "#prev_value": 0,
                  // ???/??? ?
                  "#multiplier": "$multiplier"
                },
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 완전히 제거(공간도 없음)
                    "ignored": "($max_value_binding = '')",
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "$data_source",
                    // 계산식/참조 값
                    "source_property_name": "$max_value_binding",
                    // 결과가 들어갈 속성
                    "target_property_name": "#max_bind"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "$data_source",
                    // 계산식/참조 값
                    "source_property_name": "#visible",
                    // 결과가 들어갈 속성
                    "target_property_name": "#key"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "$data_source",
                    // 계산식/참조 값
                    "source_property_name": "$progress_binding",
                    // 결과가 들어갈 속성
                    "target_property_name": "#changed_value"
                  },
                  {
                    // 완전히 제거(공간도 없음)
                    "ignored": "($max_value_binding = '')",
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "($one / #max_bind)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#multiplier"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#prev_value * (1 - #key) + #changed_value * #key)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#prev_value"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#changed_value + (#prev_value - #changed_value) * ((#prev_value - #changed_value) < 0))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#min" // min(#prev_value, #changed_value)
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "((#changed_value + #prev_value - #min) * #multiplier)",
                    // 결과가 들어갈 속성
                    "target_property_name": "$_size_binding"
                  }
                ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "anim_increase_cx2": {
                      // 데이터 목록을 반복 배치
                      "type": "collection_panel",
                      // 오버라이드 가능한 변수
                      "$size_anim": "('@animated_bar.increase_anim' + $_direction + $_fixed)",
                      // 오버라이드 가능한 변수
                      "$ignore_trail": true,
                      // 목록 아이템을 자동으로 생성
                      "factory": {
                        // ?? ??
                        "name": "anim_increase",
                        // ??? ???
                        "control_name": "$control_name"
                      },
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "animated_bar_panel_cx1",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "((#changed_value > #prev_value) * 1)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#collection_length"
                        },
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#collection_length * 0 = 0)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                        }
                      ]
                    }
                  },
                  {
                    // ???/?? ??
                    "anim_decrease_cx2": {
                      // 데이터 목록을 반복 배치
                      "type": "collection_panel",
                      // 오버라이드 가능한 변수
                      "$size_anim": "('@animated_bar.decrease_anim' + $_direction + $_fixed)",
                      // 목록 아이템을 자동으로 생성
                      "factory": {
                        // ?? ??
                        "name": "anim_decrease",
                        // ??? ???
                        "control_name": "$control_name"
                      },
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        {
                          // 계산/조건 결과를 연결
                          "binding_type": "view",
                          // ?? ??
                          "source_control_name": "animated_bar_panel_cx1",
                          // ?? ??
                          "resolve_sibling_scope": true,
                          // 계산식/참조 값
                          "source_property_name": "((#prev_value > #changed_value) * 1)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#collection_length"
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "bar_panel_cx1": {
                // 이미지 표시
                "type": "image",
                // ???
                "alpha": "$bar_alpha",
                // 사용할 이미지 경로
                "texture": "$bar_texture",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$_anchor",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$_anchor",
                // 가로/세로 크기
                "size": ["100%", "100%"],
                // ??? ??
                "clip_direction": "$fill_from",
                // ?? ??
                "clip_pixelperfect": false,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "animated_bar_panel_cx1",
                    // ?? ??
                    "resolve_sibling_scope": true,
                    // 계산식/참조 값
                    "source_property_name": "($one - #min * #multiplier)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#clip_ratio"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "bar_bg_cx0": {
          // 이미지 표시
          "type": "image",
          // ???
          "alpha": "$background_alpha",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 0,
          // 사용할 이미지 경로
          "texture": "$background_texture"
        }
      }
    ]
  },

  // ???/?? ??
  "increase_anim": {
    // 크기 변화
    "anim_type": "size",
    // 시작 값
    "from": [0, "100%"],
    // 끝 값
    "to": ["100%", "100%"],
    // 걸리는 시간(초)
    "duration": "$duration",
    // 움직임 곡선
    "easing": "$increase_easing"
  },

  "increase_anim__fixed": { // for fixed texture
    // 크기 변화
    "anim_type": "size",
    // 시작 값
    "from": [0, "200%"],
    // 끝 값
    "to": ["100%", "200%"],
    // 걸리는 시간(초)
    "duration": "$duration",
    // 움직임 곡선
    "easing": "$increase_easing"
  },

  // ???/?? ??
  "increase_anim__vertical": {
    // 크기 변화
    "anim_type": "size",
    // 시작 값
    "from": ["100%", 0],
    // 끝 값
    "to": ["100%", "100%"],
    // 걸리는 시간(초)
    "duration": "$duration",
    // 움직임 곡선
    "easing": "$increase_easing"
  },

  "increase_anim__vertical__fixed": { // for fixed texture
    // 크기 변화
    "anim_type": "size",
    // 시작 값
    "from": ["200%", 0],
    // 끝 값
    "to": ["200%", "100%"],
    // 걸리는 시간(초)
    "duration": "$duration",
    // 움직임 곡선
    "easing": "$increase_easing"
  },

  // ???/?? ??
  "decrease_anim": {
    // 크기 변화
    "anim_type": "size",
    // 시작 값
    "from": ["100%", "100%"],
    // 끝 값
    "to": [0, "100%"],
    // 걸리는 시간(초)
    "duration": "$duration",
    // 움직임 곡선
    "easing": "$decrease_easing"
  },

  "decrease_anim__fixed": { // for fixed texture
    // 크기 변화
    "anim_type": "size",
    // 시작 값
    "from": ["100%", "200%"],
    // 끝 값
    "to": [0, "200%"],
    // 걸리는 시간(초)
    "duration": "$duration",
    // 움직임 곡선
    "easing": "$decrease_easing"
  },

  // ???/?? ??
  "decrease_anim__vertical": {
    // 크기 변화
    "anim_type": "size",
    // 시작 값
    "from": ["100%", "100%"],
    // 끝 값
    "to": ["100%", 0],
    // 걸리는 시간(초)
    "duration": "$duration",
    // 움직임 곡선
    "easing": "$decrease_easing"
  },

  "decrease_anim__vertical__fixed": { // for fixed texture
    // 크기 변화
    "anim_type": "size",
    // 시작 값
    "from": ["200%", "100%"],
    // 끝 값
    "to": ["200%", 0],
    // 걸리는 시간(초)
    "duration": "$duration",
    // 움직임 곡선
    "easing": "$decrease_easing"
  },

  // ???/?? ??
  "trail_anim": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": "$trail_delay",
    // 다음 애니메이션으로 연결
    "next": "('@animated_bar.decrease_anim' + $_direction)"
  },

  // ???/?? ??
  "animated_bar_image": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", "100%"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "bar_image_cx0": {
          // 이미지 표시
          "type": "image",
          // ???
          "alpha": "$bar_alpha",
          // 사용할 이미지 경로
          "texture": "$bar_texture",
          // 가로/세로 크기
          "size": "$size_anim",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 기준점(어디에서 시작할지)
          "anchor_from": "$_anchor",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "$_anchor"
        }
      },
      {
        // ???/?? ??
        "trail_image_cx0": {
          // 완전히 제거(공간도 없음)
          "ignored": "$ignore_trail",
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 0,
          // 가로/세로 크기
          "size": "@animated_bar.trail_anim",
          // ???
          "alpha": "$trail_alpha",
          // 기준점(어디에서 시작할지)
          "anchor_from": "$_anchor",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "$_anchor",
          // 사용할 이미지 경로
          "texture": "$trail_texture"
        }
      }
    ]
  },

  "animated_bar_image__fixed": { // for fixed texture
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", "100%"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "bar_image_cx0": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$size_anim",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 기준점(어디에서 시작할지)
          "anchor_from": "$_anchor",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "$_anchor",
          // ?? ????
          "clips_children": true,
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "image_cx1": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": "$bar_size",
                // ???
                "alpha": "$bar_alpha",
                // 기준점(어디에서 시작할지)
                "anchor_from": "$_anchor",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "$_anchor",
                // 사용할 이미지 경로
                "texture": "$bar_texture"
              }
            }
          ]
        }
      },
      {
        // ???/?? ??
        "trail_image_cx0": {
          // 완전히 제거(공간도 없음)
          "ignored": "$ignore_trail",
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 0,
          // 가로/세로 크기
          "size": "@animated_bar.trail_anim",
          // ???
          "alpha": "$trail_alpha",
          // 기준점(어디에서 시작할지)
          "anchor_from": "$_anchor",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "$_anchor",
          // 사용할 이미지 경로
          "texture": "$trail_texture"
        }
      }
    ]
  }
}

bar.json 초보 예제 모음 · Animated Progress Bar Template

필요한 부분만 참고해서 가져가세요.

// 예제: bar.json
// 분류: 초보 예제 모음 / Animated Progress Bar Template
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 1,
  // ???/?? ??
  "base_size": [
    3,
    3
  ]
}

bar_bg.json 초보 예제 모음 · Animated Progress Bar Template

필요한 부분만 참고해서 가져가세요.

// 예제: bar_bg.json
// 분류: 초보 예제 모음 / Animated Progress Bar Template
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": [10, 3, 1, 3],
  // ???/?? ??
  "base_size": [
    15,
    10
  ]
}

hud_screen.json 초보 예제 모음 · Animated Progress Bar Template

필요한 부분만 참고해서 가져가세요.

// 예제: hud_screen.json
// 분류: 초보 예제 모음 / Animated Progress Bar Template
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // ???/?? ??
  "hud_title_text/title_frame": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "title",
        // 계산식/참조 값
        "source_property_name": "(#text - 'bar:' = #text)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  "preserved_title": { // it's just an example. you can use it as-is or use your existing code
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [0, 0],
    // 오버라이드 가능한 변수
    "$update_string": "bar:",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#hud_title_text_string"
      },
      {
        // 가져올 값 이름
        "binding_name": "#hud_title_text_string",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#preserved_text",
        // ?? ???
        "binding_condition": "visibility_changed"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not (#hud_title_text_string = #preserved_text) and not ((#hud_title_text_string - $update_string) = #hud_title_text_string))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#preserved_text - $update_string) + 0)",
        // 결과가 들어갈 속성
        "target_property_name": "#progress"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#preserved_text - ($update_string + #progress + ',')) + 0)",
        // 결과가 들어갈 속성
        "target_property_name": "#max_value"
      }
    ]
  },


  // usage example. the variables you might need to change are described in the other file :)

  "root_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          { "bar_data@hud.preserved_title": {} },

          // if you want to hide the bar conditionally, you can define bindings in these
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "bar_1@animated_bar.animated_progress_bar": {
              // 오버라이드 가능한 변수
              "$background_size": [120, 10],
              // 오버라이드 가능한 변수
              "$bar_size": ["100% - 11px", "100% - 6px"],
              // 오버라이드 가능한 변수
              "$bar_offset": [10, 3],
              // 기준점에서 이동하는 거리
              "offset": [0, 50],

              // 오버라이드 가능한 변수
              "$multiplier": 0.02, // 1 / 50; 50 - max amount
              // 오버라이드 가능한 변수
              "$data_source": "bar_data", // we're getting our data from the preserved_title panel above named 'bar_data'
              // 오버라이드 가능한 변수
              "$progress_binding": "#progress", // see the bindings of preserved_title to understand better

              // 오버라이드 가능한 변수
              "$text_format": "('§z' + $progress_binding + '/50')"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "temp_bar@animated_bar.animated_progress_bar": {
              // 기준점(어디에서 시작할지)
              "anchor_from": "bottom_right",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "bottom_right",
              // 기준점에서 이동하는 거리
              "offset": [-10, -10],

              // 오버라이드 가능한 변수
              "$background_size": [7, 62],
              // 오버라이드 가능한 변수
              "$bar_size": [5, 51],
              // 오버라이드 가능한 변수
              "$bar_offset": [1, 0],
              // 오버라이드 가능한 변수
              "$bar_texture": "textures/ui/temp_bar_fixed",
              // 오버라이드 가능한 변수
              "$background_texture": "textures/ui/temp_bar_bg_fixed",

              // 오버라이드 가능한 변수
              "$texture_type": "fixed",
              // 오버라이드 가능한 변수
              "$fill_from": "down",
              // 오버라이드 가능한 변수
              "$ignore_trail": true,
              // 오버라이드 가능한 변수
              "$multiplier": 0.02, // 1 / 50
              // 오버라이드 가능한 변수
              "$data_source": "bar_data",
              // 오버라이드 가능한 변수
              "$progress_binding": "#progress",
              // 오버라이드 가능한 변수
              "$ignore_text": true
            }
          },
          // usage with dynamic max value
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "bar_2@animated_bar.animated_progress_bar": {
              // 기준점에서 이동하는 거리
              "offset": [0, 80],

              // 오버라이드 가능한 변수
              "$background_size": [120, 10],
              // 오버라이드 가능한 변수
              "$bar_size": ["100% - 11px", "100% - 6px"],
              // 오버라이드 가능한 변수
              "$bar_offset": [10, 3],

              // "$multiplier": 0.02,  - no need for multiplier if you're using dynamic max value
              "$data_source": "bar_data",
              // 오버라이드 가능한 변수
              "$progress_binding": "#progress",
              // 오버라이드 가능한 변수
              "$max_value_binding": "#max_value",

              // 오버라이드 가능한 변수
              "$text_format": "('§z' + $progress_binding + '/' + $max_value_binding)"
            }
          },
          {
            // 다른 템플릿을 가져와서 확장(상속)
            "health_bar@animated_bar.animated_progress_bar": {
              // 기준점(어디에서 시작할지)
              "anchor_from": "top_right",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "top_right",
              // 기준점에서 이동하는 거리
              "offset": [-10, 20],

              // 오버라이드 가능한 변수
              "$background_size": [80, 8],
              // 오버라이드 가능한 변수
              "$bar_size": [68, 4],
              // 오버라이드 가능한 변수
              "$bar_offset": [2, 2],
              // 오버라이드 가능한 변수
              "$bar_texture": "textures/ui/health_bar_fixed",
              // 오버라이드 가능한 변수
              "$background_texture": "textures/ui/health_bar_bg_fixed",

              // 오버라이드 가능한 변수
              "$texture_type": "fixed",
              // 오버라이드 가능한 변수
              "$fill_from": "right",
              // 오버라이드 가능한 변수
              "$multiplier": 0.025, // 1 / 40
              // 오버라이드 가능한 변수
              "$data_source": "bar_data",
              // 오버라이드 가능한 변수
              "$text_font_scale_factor": 0.7,
              // 오버라이드 가능한 변수
              "$text_offset": [0, -8],
              // 오버라이드 가능한 변수
              "$progress_binding": "#progress",
              // 오버라이드 가능한 변수
              "$text_format|default": "('§z' + $progress_binding + '/40')"
            }
          }
        ]
      }
    ]
  }
}

chat notifications no examples

_global_variables.json 초보 예제 모음 · chat notifications no examples

필요한 부분만 참고해서 가져가세요.

// 예제: _global_variables.json
// 분류: 초보 예제 모음 / chat notifications no examples
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 오버라이드 가능한 변수
  "$notification_flag_0e34fd": "§N§O§T§I§F§I§C§A§T§I§O§N"
}

chat_screen.json 초보 예제 모음 · chat notifications no examples

필요한 부분만 참고해서 가져가세요.

// 예제: chat_screen.json
// 분류: 초보 예제 모음 / chat notifications no examples
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "chat",
  // ???/?? ??
  "messages_text/text": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('§␛' + #text + '§r') - ('§␛' + $notification_flag_0e34fd) = ('§␛' + #text + '§r'))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  }
}

hud_screen.json 초보 예제 모음 · chat notifications no examples

필요한 부분만 참고해서 가져가세요.

// 예제: hud_screen.json
// 분류: 초보 예제 모음 / chat notifications no examples
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// 이 파일의 이름표(다른 파일에서 @로 참조)
	"namespace": "hud",
	// ???/?? ??
	"hud_screen": {
		// ?? ??
		"render_only_when_topmost": false,
		// 오버라이드 가능한 변수
		"$additional_screen_content": "hud.notification_factory",
		// 오버라이드 가능한 변수
		"$use_loading_bars": false,
		// 오버라이드 가능한 변수
		"$screen_animations": [],
		// 오버라이드 가능한 변수
		"$background_animations": []
	},
	// ???/?? ??
	"notification_factory": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 가로/세로 크기
		"size": [0, "100%c"],
		// 겹치는 순서(숫자 클수록 위)
		"layer": 20,
		// 기준점(어디에서 시작할지)
		"anchor_from": "top_right",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "top_right",
		// 목록 아이템을 자동으로 생성
		"factory": {
			// ?? ??
			"name": "chat_item_factory",
			// 팩토리 템플릿 매핑
			"control_ids": {"chat_item": "@hud.notification"}
		}
	},
	// ???/?? ??
	"noti_1": {
		// 크기 변화
		"anim_type": "size",
		// 걸리는 시간(초)
		"duration": "$in_time",
		// 움직임 곡선
		"easing": "out_sine",
		// 시작 값
		"from": ["100%c", "100%c"],
		// 끝 값
		"to": [0, "100%c"],
		// 다음 애니메이션으로 연결
		"next": "@hud.noti_2"
	},
	// ???/?? ??
	"noti_2": {
		// 잠시 대기
		"anim_type": "wait",
		// 걸리는 시간(초)
		"duration": "$stay_time",
		// 다음 애니메이션으로 연결
		"next": "@hud.noti_3"
	},
	// ???/?? ??
	"noti_3": {
		// 크기 변화
		"anim_type": "size",
		// 걸리는 시간(초)
		"duration": "$out_time",
		// 움직임 곡선
		"easing": "in_sine",
		// 시작 값
		"from": [0, "100%c"],
		// 끝 값
		"to": ["100%c", "100%c"],
		// 다음 애니메이션으로 연결
		"next": "@hud.noti_4"
	},
	// ???/?? ??
	"noti_4": {
		// 투명도 변화
		"anim_type": "alpha",
		// 걸리는 시간(초)
		"duration": 0,
		// 시작 값
		"from": 1,
		// 끝 값
		"to": 0,
		// 다음 애니메이션으로 연결
		"next": "@hud.noti_5"
	},
	// ???/?? ??
	"noti_5": {
		// 크기 변화
		"anim_type": "size",
		// 걸리는 시간(초)
		"duration": 1,
		// 움직임 곡선
		"easing": "out_expo",
		// 시작 값
		"from": ["100%c", "100%c"],
		// 끝 값
		"to": ["100%c", 0],
		// 다음 애니메이션으로 연결
		"next": "@hud.noti_4",
		// ?? ??
		"destroy_at_end": "chat_grid_item"
	},
	// ???/?? ??
	"immediate_destroy_anim": {
		// 잠시 대기
		"anim_type": "wait",
		// 걸리는 시간(초)
		"duration": 0,
		// ?? ??
		"destroy_at_end": "chat_grid_item"
	},
	// ???/?? ??
	"notification": {
		// 오버라이드 가능한 변수
		"$in_time": 1,
		// 오버라이드 가능한 변수
		"$stay_time": 5,
		// 오버라이드 가능한 변수
		"$out_time": 1,
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// ??? ?? ?
		"propagate_alpha": true,
		// 애니메이션 목록
		"anims": ["@hud.noti_1"],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"notification_background": {
					// 이미지 표시
					"type": "image",
					// 기준점(어디에서 시작할지)
					"anchor_from": "top_right",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_right",
					// 가로/세로 크기
					"size": ["100%c + 18px", "100%cm + 12px"],
					// ?? ?? ?
					"min_size": ["100%c + 18px", 34],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"notification_text_panel": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": ["100%cm", "100%c"],
								// 겹치는 순서(숫자 클수록 위)
								"layer": 1,
								// 기준점(어디에서 시작할지)
								"anchor_from": "right_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "right_middle",
								// 기준점에서 이동하는 거리
								"offset": [-9, 1],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "notification_background",
										// 계산식/참조 값
										"source_property_name": "#notification_title",
										// 결과가 들어갈 속성
										"target_property_name": "#nested_title",
										// ?? ??
										"resolve_sibling_scope": true
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "notification_background",
										// 계산식/참조 값
										"source_property_name": "#notification_message",
										// 결과가 들어갈 속성
										"target_property_name": "#nested_message",
										// ?? ??
										"resolve_sibling_scope": true
									}
								],
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// ???/?? ??
										"notification_title": {
											// 글자 표시
											"type": "label",
											// ??/?? ?
											"line_padding": -2,
											// ??
											"font_type": "MinecraftTen",
											// ?? ?? ?
											"backup_font_type": "MinecraftTen",
											// ?? ?? ??
											"font_scale_factor": 1.5,
											// 보여줄 글자
											"text": "#title",
											// 기준점(어디에서 시작할지)
											"anchor_from": "top_left",
											// 붙일 위치(어디에 놓을지)
											"anchor_to": "top_left",
											// 기준점에서 이동하는 거리
											"offset": [0, -2],
											// ?? ?? ?
											"max_size": [200, "default"],
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 계산/조건 결과를 연결
													"binding_type": "view",
													// ?? ??
													"source_control_name": "notification_text_panel",
													// 계산식/참조 값
													"source_property_name": "#nested_title",
													// 결과가 들어갈 속성
													"target_property_name": "#title",
													// ?? ??
													"resolve_sibling_scope": true
												},
												{
													// 계산/조건 결과를 연결
													"binding_type": "view",
													// 계산식/참조 값
													"source_property_name": "(not (#title = '§r§r'))",
													// 결과가 들어갈 속성
													"target_property_name": "#visible"
												}
											]
										}
									},
									{
										// ???/?? ??
										"notification_message": {
											// 글자 표시
											"type": "label",
											// ??/?? ?
											"line_padding": 1,
											// 보여줄 글자
											"text": "#message",
											// 기준점(어디에서 시작할지)
											"anchor_from": "bottom_left",
											// 붙일 위치(어디에 놓을지)
											"anchor_to": "bottom_left",
											// ?? ?? ?
											"max_size": [200, "default"],
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 계산/조건 결과를 연결
													"binding_type": "view",
													// ?? ??
													"source_control_name": "notification_text_panel",
													// 계산식/참조 값
													"source_property_name": "#nested_message",
													// 결과가 들어갈 속성
													"target_property_name": "#message",
													// ?? ??
													"resolve_sibling_scope": true
												},
												{
													// 계산/조건 결과를 연결
													"binding_type": "view",
													// 계산식/참조 값
													"source_property_name": "(not (#message = '§r§r'))",
													// 결과가 들어갈 속성
													"target_property_name": "#visible"
												}
											]
										}
									}
								]
							}
						},
						{
							// ???/?? ??
							"notification_icon_texture": {
								// 이미지 표시
								"type": "image",
								// 겹치는 순서(숫자 클수록 위)
								"layer": 1,
								// 가로/세로 크기
								"size": [16, 16],
								// 기준점(어디에서 시작할지)
								"anchor_from": "top_left",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "top_left",
								// 기준점에서 이동하는 거리
								"offset": [9, 9],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "notification_background",
										// 계산식/참조 값
										"source_property_name": "#notification_icon_texture",
										// 결과가 들어갈 속성
										"target_property_name": "#texture",
										// ?? ??
										"resolve_sibling_scope": true
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(not (#texture = '') and (#texture - 'aux:' = #texture))",
										// 결과가 들어갈 속성
										"target_property_name": "#visible"
									}
								]
							}
						},
						{
							// ???/?? ??
							"notification_item_renderer": {
								// 특수 렌더러(그라디언트/플레이어 등)
								"type": "custom",
								// 커스텀 렌더러 종류
								"renderer": "inventory_item_renderer",
								// 겹치는 순서(숫자 클수록 위)
								"layer": 1,
								// 가로/세로 크기
								"size": [16, 16],
								// 기준점(어디에서 시작할지)
								"anchor_from": "top_left",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "top_left",
								// 기준점에서 이동하는 거리
								"offset": [9, 9],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "notification_background",
										// 계산식/참조 값
										"source_property_name": "((#notification_icon_texture - 'aux:') * 1)",
										// 결과가 들어갈 속성
										"target_property_name": "#item_id_aux",
										// ?? ??
										"resolve_sibling_scope": true
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "notification_background",
										// 계산식/참조 값
										"source_property_name": "(not (#notification_icon_texture - 'aux:' = #notification_icon_texture))",
										// 결과가 들어갈 속성
										"target_property_name": "#visible",
										// ?? ??
										"resolve_sibling_scope": true
									}
								]
							}
						},
						{
							// ???/?? ??
							"notification_icon_padding": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": [6, 0],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "notification_background",
										// 계산식/참조 값
										"source_property_name": "(not ((#notification_title + #notification_message = '§r§r§r§r') or (#notification_icon_texture = '')))",
										// 결과가 들어갈 속성
										"target_property_name": "#visible",
										// ?? ??
										"resolve_sibling_scope": true
									}
								]
							}
						}
					],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// 계산식/참조 값
							"source_property_name": "(not (('§␛' + #text + '§r') - ('§␛' + $notification_flag_0e34fd) = ('§␛' + #text + '§r')))",
							// 결과가 들어갈 속성
							"target_property_name": "#visible"
						},
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// 계산식/참조 값
							"source_property_name": "('\b' + #text - $notification_flag_0e34fd)",
							// 결과가 들어갈 속성
							"target_property_name": "#data"
						},
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// 계산식/참조 값
							"source_property_name": "('§r' + '%.101s' * #data - '\b' - '\t' + '§r')",
							// 결과가 들어갈 속성
							"target_property_name": "#notification_title"
						},
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// 계산식/참조 값
							"source_property_name": "(('§r' + '%.301s' * #data - '%.101s' * #data) - '\b' - '\t' + '§r')",
							// 결과가 들어갈 속성
							"target_property_name": "#notification_message"
						},
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// 계산식/참조 값
							"source_property_name": "('%.401s' * #data - '%.301s' * #data - '\t')",
							// 결과가 들어갈 속성
							"target_property_name": "#notification_icon_texture"
						},
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// 계산식/참조 값
							"source_property_name": "('%.501s' * #data - '%.401s' * #data - '\t')",
							// 결과가 들어갈 속성
							"target_property_name": "#texture"
						}
					]
				}
			},
			{
				// ???/?? ??
				"immediate_destroy": {
					// 줄맞춤 컨테이너: 가로/세로로 자동 배치
					"type": "stack_panel",
					// 가로/세로 크기
					"size": [0, 0],
					// 목록 아이템을 자동으로 생성
					"factory": {
						// ?? ??
						"name": "immediate_destroy_factory",
						// ??? ???
						"control_name": "@hud.immediate_destroy_control"
					},
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "notification_background",
							// 계산식/참조 값
							"source_property_name": "((not #visible) * 1)",
							// 결과가 들어갈 속성
							"target_property_name": "#collection_length",
							// ?? ??
							"resolve_sibling_scope": true
						}
					]
				}
			}
		]
	},
	// ???/?? ??
	"immediate_destroy_control": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": [0, 0],
		// 애니메이션 목록
		"anims": ["@hud.immediate_destroy_anim"]
	},
	// ???/?? ??
	"chat_grid_item/chat_background": {
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 계산/조건 결과를 연결
				"binding_type": "view",
				// 계산식/참조 값
				"source_property_name": "(('§␛' + #text + '§r') - ('§␛' + $notification_flag_0e34fd) = ('§␛' + #text + '§r'))",
				// 결과가 들어갈 속성
				"target_property_name": "#visible"
			}
		]
	}
}

manifest.json 초보 예제 모음 · chat notifications no examples

필요한 부분만 참고해서 가져가세요.

// 예제: manifest.json
// 분류: 초보 예제 모음 / chat notifications no examples
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// ?? ??
	"format_version": 1,
	// ???/?? ??
	"header": {
		// ?? ??
		"name": "Chat Notifications RP",
		// ?? ??
		"uuid": "273a15d4-77a1-4a81-a82f-dbaa4c53abbf",
		// ?? ??
		"version": [0, 3, 1]
	},
	// ???/?? ??
	"modules": [
		{
			// 컨트롤 종류
			"type": "resources",
			// ?? ??
			"uuid": "50386810-a876-4852-bcd5-9a33ca7ca0f9",
			// ?? ??
			"version": [0, 3, 1]
		}
	],
	// ???/?? ??
	"dependencies": [
		{"uuid": "592315d1-e621-4869-9bac-00f3d17e533c", "version": [0, 3, 1]}
	]
}

manifest.json 초보 예제 모음 · chat notifications no examples

필요한 부분만 참고해서 가져가세요.

// 예제: manifest.json
// 분류: 초보 예제 모음 / chat notifications no examples
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// ?? ??
	"format_version": 1,
	// ???/?? ??
	"header": {
		// ?? ??
		"name": "Chat Notifications BP",
		// ?? ??
		"uuid": "592315d1-e621-4869-9bac-00f3d17e533c",
		// ?? ??
		"version": [0, 3, 1]
	},
	// ???/?? ??
	"modules": [
		{
			// 컨트롤 종류
			"type": "data",
			// ?? ??
			"uuid": "6084851f-76a2-47f8-a2e2-0226ca0dbbdd",
			// ?? ??
			"version": [0, 3, 1]
		},
		{
			// 컨트롤 종류
			"type": "script",
			// ?? ??
			"language": "javascript",
			// ?? ??
			"entry": "scripts/index.js",
			// ?? ??
			"uuid": "2712ef0d-c898-49a6-bf5a-8ca61035fe3f",
			// ?? ??
			"version": "1.6.0"
		}
	],
	// ???/?? ??
	"dependencies": [
		{"uuid": "273a15d4-77a1-4a81-a82f-dbaa4c53abbf", "version": [0, 3, 1]},
		{"module_name": "@minecraft/server", "version": "1.16.0"}
	]
}

Custom Animated Toggle Template

debug_screen.json 초보 예제 모음 · Custom Animated Toggle Template

필요한 부분만 참고해서 가져가세요.

// 예제: debug_screen.json
// 분류: 초보 예제 모음 / Custom Animated Toggle Template
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// 이 파일의 이름표(다른 파일에서 @로 참조)
	"namespace": "debug_screen",
	// 다른 템플릿을 가져와서 확장(상속)
	"debug_screen@common.base_screen": {
		// 오버라이드 가능한 변수
		"$screen_content": "debug_screen.panelists"
	},
	// 다른 템플릿을 가져와서 확장(상속)
	"panelists@common.empty_panel": {
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"switch@common_toggles.animated_toggle": {
					// 가로/세로 크기
					"size": [
						64,
						32
					],
					// 오버라이드 가능한 변수
					"$toggle_view_binding_name": "Sw",
					// 오버라이드 가능한 변수
					"$toggle_text": "Switch state",
					// 오버라이드 가능한 변수
					"$toggle_type": "switch"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"button@common_toggles.animated_toggle": {
					// 기준점에서 이동하는 거리
					"offset": [
						0,
						32
					],
					// 가로/세로 크기
					"size": [
						128,
						32
					],
					// 오버라이드 가능한 변수
					"$toggle_view_binding_name": "Bt",
					// 오버라이드 가능한 변수
					"$toggle_text": "Button state",
					// 오버라이드 가능한 변수
					"$toggle_type": "button"
				}
			}
		]
	}
}

glow.json 초보 예제 모음 · Custom Animated Toggle Template

필요한 부분만 참고해서 가져가세요.

// 예제: glow.json
// 분류: 초보 예제 모음 / Custom Animated Toggle Template
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// {
//   "nineslice_size": 0,
//   "base_size": [
//     256,
//     256
//   ]
// }
{
  // 테두리 늘림(9분할)
  "nineslice_size": 20,
  // ???/?? ??
  "base_size": [
    48,
    48
  ]
}

ui_template_toggles.json 초보 예제 모음 · Custom Animated Toggle Template

필요한 부분만 참고해서 가져가세요.

// 예제: ui_template_toggles.json
// 분류: 초보 예제 모음 / Custom Animated Toggle Template
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// 이 파일의 이름표(다른 파일에서 @로 참조)
	"namespace": "common_toggles",
	// 다른 템플릿을 가져와서 확장(상속)
	"pwgfrjenwkaoa@common.empty_image": {
		// 애니메이션 목록
		"anims": [
			{
				// ???/?? ??
				"InCol": {
					// 색상 변화
					"anim_type": "color",
					// 움직임 곡선
					"easing": "out_quart",
					// 걸리는 시간(초)
					"duration": 0.4,
					// 시작 값
					"from": [
						0.6,
						0.3,
						0.3,
						0.0
					],
					// 끝 값
					"to": [
						0.3,
						0.6,
						0.3,
						1.0
					]
				}
			}
		],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"bcg_shadow": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "glow",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 0,
					// 가로/세로 크기
					"size": [
						"100%+20px",
						"100%+20px"
					],
					// 애니메이션 목록
					"anims": [
						{
							// ???/?? ??
							"InCol": {
								// 색상 변화
								"anim_type": "color",
								// 움직임 곡선
								"easing": "out_quart",
								// 걸리는 시간(초)
								"duration": 0.4,
								// 시작 값
								"from": [
									0.6,
									0.3,
									0.3,
									0.0
								],
								// 끝 값
								"to": [
									0.3,
									0.6,
									0.3,
									1.0
								]
							}
						}
					]
				}
			},
			{
				// ???/?? ??
				"laiddibel": {
					// 글자 표시
					"type": "label",
					// 보여줄 글자
					"text": "$§",
					// 오버라이드 가능한 변수
					"$§": "($toggle_text + ': §aON')",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 3,
					// ?? ??
					"shadow": true
				}
			}
		],
		// 사용할 이미지 경로
		"texture": "textures/ui/white_background",
		// ?? ??
		"keep_ratio": false
	},
	// 다른 템플릿을 가져와서 확장(상속)
	"pwgfrjenwkaoa_exit@common.empty_image": {
		// 애니메이션 목록
		"anims": [
			{
				// ???/?? ??
				"InCol": {
					// 색상 변화
					"anim_type": "color",
					// 움직임 곡선
					"easing": "out_quart",
					// 걸리는 시간(초)
					"duration": 0.4,
					// 끝 값
					"to": [
						0.6,
						0.3,
						0.3,
						0.0
					],
					// 시작 값
					"from": [
						0.3,
						0.6,
						0.3,
						1.0
					]
				}
			}
		],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"bcg_shadow": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "glow",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 0,
					// 가로/세로 크기
					"size": [
						"100%+20px",
						"100%+20px"
					],
					// 애니메이션 목록
					"anims": [
						{
							// ???/?? ??
							"InCol": {
								// 색상 변화
								"anim_type": "color",
								// 움직임 곡선
								"easing": "out_quart",
								// 걸리는 시간(초)
								"duration": 0.4,
								// 끝 값
								"to": [
									0.6,
									0.3,
									0.3,
									0.0
								],
								// 시작 값
								"from": [
									0.3,
									0.6,
									0.3,
									1.0
								]
							}
						}
					]
				}
			},
			{
				// ???/?? ??
				"bg": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/white_background",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 2,
					// 가로/세로 크기
					"size": [
						"100%",
						"100%"
					],
					// ?? ??
					"keep_ratio": false,
					// 애니메이션 목록
					"anims": [
						{
							// ???/?? ??
							"InCol": {
								// 색상 변화
								"anim_type": "color",
								// 움직임 곡선
								"easing": "out_quart",
								// 걸리는 시간(초)
								"duration": 0.4,
								// 끝 값
								"to": [
									0.6,
									0.3,
									0.3,
									0.5
								],
								// 시작 값
								"from": [
									0.3,
									0.6,
									0.3,
									0.5
								]
							}
						}
					]
				}
			},
			{
				// ???/?? ??
				"fkdi": {
					// 글자 표시
					"type": "label",
					// 보여줄 글자
					"text": "$§",
					// 오버라이드 가능한 변수
					"$§": "($toggle_text + ': §cOFF')",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 3,
					// ?? ??
					"shadow": true
				}
			}
		],
		// 사용할 이미지 경로
		"texture": "textures/ui/white_background",
		// ?? ??
		"keep_ratio": false
	},
	// 다른 템플릿을 가져와서 확장(상속)
	"pwgfrjenwkaoa_sw@common.empty_panel": {
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"bcg_shadow": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "glow",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 0,
					// 가로/세로 크기
					"size": [
						"100%+20px",
						"100%+20px"
					],
					// 애니메이션 목록
					"anims": [
						{
							// ???/?? ??
							"InCol": {
								// 색상 변화
								"anim_type": "color",
								// 움직임 곡선
								"easing": "out_quart",
								// 걸리는 시간(초)
								"duration": 0.4,
								// 시작 값
								"from": [
									0.6,
									0.3,
									0.3,
									0.0
								],
								// 끝 값
								"to": [
									0.3,
									0.6,
									0.3,
									1.0
								]
							}
						}
					]
				}
			},
			{
				// ???/?? ??
				"nub": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/white_background",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 2,
					// 가로/세로 크기
					"size": [
						20,
						"100%"
					],
					// ?? ??
					"keep_ratio": false,
					// 애니메이션 목록
					"anims": [
						{
							// ???/?? ??
							"InCol": {
								// 색상 변화
								"anim_type": "color",
								// 움직임 곡선
								"easing": "out_quart",
								// 걸리는 시간(초)
								"duration": 0.4,
								// 시작 값
								"from": [
									0.6,
									0.3,
									0.3,
									0.0
								],
								// 끝 값
								"to": [
									0.3,
									0.6,
									0.3,
									1.0
								]
							}
						},
						{
							// ???/?? ??
							"OffsetIn": {
								// 위치 이동
								"anim_type": "offset",
								// 움직임 곡선
								"easing": "out_quart",
								// 걸리는 시간(초)
								"duration": 0.4,
								// 시작 값
								"from": [
									"-75%+25px",
									0
								],
								// 끝 값
								"to": [
									"75%-25px",
									0
								]
							}
						}
					]
				}
			},
			{
				// ???/?? ??
				"lavbel": {
					// 글자 표시
					"type": "label",
					// 보여줄 글자
					"text": "$§",
					// 오버라이드 가능한 변수
					"$§": "($toggle_text + ': §aON')",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 3,
					// ?? ??
					"shadow": true
				}
			}
		]
	},
	// 다른 템플릿을 가져와서 확장(상속)
	"pwgfrjenwkaoa_sw_exit@common.empty_panel": {
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"bcg_shadow": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "glow",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 0,
					// 가로/세로 크기
					"size": [
						"100%+20px",
						"100%+20px"
					],
					// 애니메이션 목록
					"anims": [
						{
							// ???/?? ??
							"InCol": {
								// 색상 변화
								"anim_type": "color",
								// 움직임 곡선
								"easing": "out_quart",
								// 걸리는 시간(초)
								"duration": 0.4,
								// 끝 값
								"to": [
									0.6,
									0.3,
									0.3,
									0.0
								],
								// 시작 값
								"from": [
									0.3,
									0.6,
									0.3,
									1.0
								]
							}
						}
					]
				}
			},
			{
				// ???/?? ??
				"by": {
					// 글자 표시
					"type": "label",
					// 보여줄 글자
					"text": "$§",
					// 오버라이드 가능한 변수
					"$§": "($toggle_text + ': §cOFF')",
					// ?? ??
					"shadow": true,
					// 겹치는 순서(숫자 클수록 위)
					"layer": 3
				}
			},
			{
				// ???/?? ??
				"nub": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/white_background",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 0,
					// 가로/세로 크기
					"size": [
						20,
						"100%"
					],
					// ?? ??
					"keep_ratio": false,
					// 애니메이션 목록
					"anims": [
						{
							// ???/?? ??
							"InCol": {
								// 색상 변화
								"anim_type": "color",
								// 움직임 곡선
								"easing": "out_quart",
								// 걸리는 시간(초)
								"duration": 0.4,
								// 끝 값
								"to": [
									0.6,
									0.3,
									0.3,
									0.0
								],
								// 시작 값
								"from": [
									0.3,
									0.6,
									0.3,
									1.0
								]
							}
						},
						{
							// ???/?? ??
							"OffsetIn": {
								// 위치 이동
								"anim_type": "offset",
								// 움직임 곡선
								"easing": "out_quart",
								// 걸리는 시간(초)
								"duration": 0.4,
								// 끝 값
								"to": [
									"-75%+25px",
									0
								],
								// 시작 값
								"from": [
									"75%-25px",
									0
								]
							}
						}
					]
				}
			}
		]
	},
	// 다른 템플릿을 가져와서 확장(상속)
	"animated_toggle@common_toggles.light_ui_toggle": {
		// 오버라이드 가능한 변수
		"$default_texture": "textures/ui/packs_border",
		// 오버라이드 가능한 변수
		"$hover_texture": "textures/ui/packs_border",
		// 오버라이드 가능한 변수
		"$pressed_texture": "textures/ui/packs_border",
		// 오버라이드 가능한 변수
		"$pressed_no_hover_texture": "textures/ui/packs_border",
		// 오버라이드 가능한 변수
		"$default_border_visible": false,
		// 오버라이드 가능한 변수
		"$hover_border_visible": false,
		// 오버라이드 가능한 변수
		"$toggle_type|default": "button",
		// 오버라이드 가능한 변수
		"$button_type_panel": "common.empty_panel",
		// 조건에 따라 변수 값을 바꾸기
		"variables": [
			{
				// 이 조건이 맞으면 적용
				"requires": "($toggle_type='button')",
				// 오버라이드 가능한 변수
				"$exit": "common_toggles.pwgfrjenwkaoa_exit",
				// 오버라이드 가능한 변수
				"$ent": "common_toggles.pwgfrjenwkaoa"
			},
			{
				// 이 조건이 맞으면 적용
				"requires": "($toggle_type='switch')",
				// 오버라이드 가능한 변수
				"$exit": "common_toggles.pwgfrjenwkaoa_sw_exit",
				// 오버라이드 가능한 변수
				"$ent": "common_toggles.pwgfrjenwkaoa_sw"
			}
		],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"background@common.empty_image": {
					// ???
					"alpha": 0.6,
					// 사용할 이미지 경로
					"texture": "textures/ui/Black"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"$toggle_view_binding_name@$template_toggle": {
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"unchecked@$unchecked_control": {}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"checked@$checked_control": {}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"unchecked_hover@$unchecked_hover_control": {}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"checked_hover@$checked_hover_control": {}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"unchecked_locked@$unchecked_locked_control": {}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"checked_locked@$checked_locked_control": {}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"unchecked_locked_hover@$unchecked_locked_hover_control": {}
						},
						{
							// 다른 템플릿을 가져와서 확장(상속)
							"checked_locked_hover@$checked_locked_hover_control": {}
						},
						{
							// ???/?? ??
							"('ent_'+$toggle_view_binding_name)": {
								// 데이터 목록을 반복 배치
								"type": "collection_panel",
								// 가로/세로 크기
								"size": [
									"100%-4px",
									"100%-4px"
								],
								// ??? ?? ?
								"propagate_alpha": true,
								// 겹치는 순서(숫자 클수록 위)
								"layer": 1,
								// 목록 아이템을 자동으로 생성
								"factory": {
									// ?? ??
									"name": "ieiriir8dsiwbbO9Xdw",
									// ??? ???
									"control_name": "$ent",
									// ?? ?? ?
									"max_children_size": 1
								},
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "$toggle_view_binding_name",
										// 계산식/참조 값
										"source_property_name": "#toggle_state",
										// 결과가 들어갈 속성
										"target_property_name": "#toggle_state"
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(1 * #toggle_state)",
										// 결과가 들어갈 속성
										"target_property_name": "#alpha"
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(1 * #toggle_state)",
										// 결과가 들어갈 속성
										"target_property_name": "#collection_length"
									}
								]
							}
						},
						{
							// ???/?? ??
							"('exit_'+$toggle_view_binding_name)": {
								// 데이터 목록을 반복 배치
								"type": "collection_panel",
								// 가로/세로 크기
								"size": [
									"100%-4px",
									"100%-4px"
								],
								// ??? ?? ?
								"propagate_alpha": true,
								// 겹치는 순서(숫자 클수록 위)
								"layer": 1,
								// 목록 아이템을 자동으로 생성
								"factory": {
									// ?? ??
									"name": "ieiriwbbO9Xdw",
									// ??? ???
									"control_name": "$exit",
									// ?? ?? ?
									"max_children_size": 1
								},
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "$toggle_view_binding_name",
										// 계산식/참조 값
										"source_property_name": "#toggle_state",
										// 결과가 들어갈 속성
										"target_property_name": "#toggle_state"
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(1 * (not #toggle_state))",
										// 결과가 들어갈 속성
										"target_property_name": "#alpha"
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(1 * (not #toggle_state))",
										// 결과가 들어갈 속성
										"target_property_name": "#collection_length"
									}
								]
							}
						}
					]
				}
			},
			{
				// ???/?? ??
				"true": {
					// 클릭 가능한 버튼
					"type": "button",
					// ??? ??
					"sound_name": "random.pop",
					// ??? ?? ?
					"sound_volume": 1,
					// ??? ?? ?
					"sound_pitch": 1,
					// 겹치는 순서(숫자 클수록 위)
					"layer": 10,
					// ?? ??
					"consume_hover_events": false,
					// 입력 키/버튼과 동작 연결
					"button_mappings": "$mappings",
					// 오버라이드 가능한 변수
					"$mappings": [
						{
							// 어떤 입력을 받을지
							"from_button_id": "button.menu_select",
							// 어떤 동작을 실행할지
							"to_button_id": "random.pop",
							// 입력 시점(pressed 등)
							"mapping_type": "pressed",
							// ?? ??
							"consume_event": false
						}
					],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "$toggle_view_binding_name",
							// 계산식/참조 값
							"source_property_name": "(not #toggle_state)",
							// 결과가 들어갈 속성
							"target_property_name": "#visible"
						}
					]
				}
			},
			{
				// ???/?? ??
				"false": {
					// 클릭 가능한 버튼
					"type": "button",
					// ??? ??
					"sound_name": "random.pop",
					// ??? ?? ?
					"sound_volume": 1,
					// ??? ?? ?
					"sound_pitch": 0.5,
					// 겹치는 순서(숫자 클수록 위)
					"layer": 10,
					// ?? ??
					"consume_hover_events": false,
					// 입력 키/버튼과 동작 연결
					"button_mappings": "$mappings",
					// 오버라이드 가능한 변수
					"$mappings": [
						{
							// 어떤 입력을 받을지
							"from_button_id": "button.menu_select",
							// 어떤 동작을 실행할지
							"to_button_id": "random.pop",
							// 입력 시점(pressed 등)
							"mapping_type": "pressed",
							// ?? ??
							"consume_event": false
						}
					],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "$toggle_view_binding_name",
							// 계산식/참조 값
							"source_property_name": "#toggle_state",
							// 결과가 들어갈 속성
							"target_property_name": "#visible"
						}
					]
				}
			}
		]
	}
}

loading anim template

_global_variables.json 초보 예제 모음 · loading anim template

필요한 부분만 참고해서 가져가세요.

// 예제: _global_variables.json
// 분류: 초보 예제 모음 / loading anim template
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 오버라이드 가능한 변수
  "$flag_for_loading_anim": "loading_anim"
}

chat_screen.json 초보 예제 모음 · loading anim template

필요한 부분만 참고해서 가져가세요.

// 예제: chat_screen.json
// 분류: 초보 예제 모음 / loading anim template
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // ???/?? ??
  "messages_text/text": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#text - '<' - '>')",
        // 결과가 들어갈 속성
        "target_property_name": "#text_n"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#text_n - $flag_for_loading_anim = #text_n)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  }
}

hud_screen.json 초보 예제 모음 · loading anim template

필요한 부분만 참고해서 가져가세요.

// 예제: hud_screen.json
// 분류: 초보 예제 모음 / loading anim template
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // ???/?? ??
  "loading_animation_alpha_out": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_quart",
    // 걸리는 시간(초)
    "duration": 0.5,
    // 시작 값
    "from": 1,
    // 끝 값
    "to": 0,
    // ?? ??
    "destroy_at_end": "chat_grid_item"
  },

  // ???/?? ??
  "loading_animation_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": "$loading_animation_wait_duration",
    // 다음 애니메이션으로 연결
    "next": "@hud.loading_animation_alpha_out"
  },

  // ???/?? ??
  "loading_animation_alpha_in": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "out_cubic",
    // 걸리는 시간(초)
    "duration": 0.5,
    // 시작 값
    "from": 0,
    // 끝 값
    "to": 1,
    // 다음 애니메이션으로 연결
    "next": "@hud.loading_animation_wait"
  },

  // ???/?? ??
  "anim_loading_bar": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "in_out_circ",
    // 걸리는 시간(초)
    "duration": "$loading_bar_duration",
    // 시작 값
    "from": [0, 16],
    // 끝 값
    "to": [200, 16]
  },

  // ???/?? ??
  "anim_loading_bar_again": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": "$loading_bar_duration",
    // 시작 값
    "from": [0, 16],
    // 끝 값
    "to": [200, 16]
  },

  // ???/?? ??
  "pick_axe_animation": {
    // 프레임 애니메이션
    "anim_type": "flip_book",
    // ?? ??
    "initial_uv": [ 0, 0 ],
    // ?? ??
    "frame_count": 91,
    // ?? ??
    "frame_step": 10,
    // ?? ??
    "fps": 30,
    // ?? ??
    "reversible": false,
    // 움직임 곡선
    "easing": "linear"
  },

  // ???/?? ??
  "portal_animation": {
    // 프레임 애니메이션
    "anim_type": "flip_book",
    // ?? ??
    "initial_uv": [ 0, 0 ],
    // ?? ??
    "frame_count": 16,
    // ?? ??
    "frame_step": 19,
    // ?? ??
    "fps": 10,
    // ?? ??
    "reversible": true,
    // 움직임 곡선
    "easing": "linear"
  },

  // ???/?? ??
  "spinner_animation": {
    // 프레임 애니메이션
    "anim_type": "flip_book",
    // ?? ??
    "initial_uv": [ 0, 0 ],
    // ?? ??
    "frame_count": 10,
    // ?? ??
    "frame_step": 7,
    // ?? ??
    "fps": 10
  },

  // ???/?? ??
  "anim_realms_stories_icon": {
    // 프레임 애니메이션
    "anim_type": "flip_book",
    // ?? ??
    "initial_uv": [ 0, 0 ],
    // ?? ??
    "frame_count": 13,
    // ?? ??
    "fps": 8,
    // ?? ??
    "looping": false,
    // 움직임 곡선
    "easing": "linear",
    // ?? ??
    "wait_until_rendered_to_play": true
  },

  // ???/?? ??
  "animation_generator": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", "100%"],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 100,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "factory_for_anim": {
          // 데이터 목록을 반복 배치
          "type": "collection_panel",
          // 가로/세로 크기
          "size": ["100%", "100%"],

          // 목록 아이템을 자동으로 생성
          "factory": {
            // ?? ??
            "name": "loading_animation_generator",
            // ??? ???
            "control_name": "hud.loading_animation"
          },

          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#text - '<' - '>')",
              // 결과가 들어갈 속성
              "target_property_name": "#text_n"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (#text_n - $flag_for_loading_anim = #text_n) * 1)",
              // 결과가 들어갈 속성
              "target_property_name": "#collection_length"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "loading_animation": {
    // 오버라이드 가능한 변수
    "$loading_animation_wait_duration": 2, //seconds
    // 오버라이드 가능한 변수
    "$loading_bar_duration": "$loading_animation_wait_duration",

    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", "100%"],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 100,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "background": {
          // 특수 렌더러(그라디언트/플레이어 등)
          "type": "custom",
          // 커스텀 렌더러 종류
          "renderer": "gradient_renderer",
          // 가로/세로 크기
          "size": ["100%", "100%"],
          // 애니메이션 목록
          "anims": [
            "@hud.loading_animation_alpha_in"
          ],
          // ??? ?? ?
          "propagate_alpha": true,
          // ?? ?? ?
          "color1": [0, 0, 0],
          // ?? ?? ?
          "color2": [0.11, 0.01, 0.2],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "logo": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/title",
                // 가로/세로 크기
                "size": [300, 55],
                // 기준점에서 이동하는 거리
                "offset": [0, "-25%"]
              }
            },
            {
              // ???/?? ??
              "loading_bar_background": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/loading_bar_background",
                // 가로/세로 크기
                "size": [200, 16],
                // 기준점에서 이동하는 거리
                "offset": [0, "20%"],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "loading_bar": {
                      // 이미지 표시
                      "type": "image",
                      // 사용할 이미지 경로
                      "texture": "textures/ui/loading_bar_filler",
                      // 가로/세로 크기
                      "size": [200, 16],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 애니메이션 목록
                      "anims": [
                        "@hud.anim_loading_bar"
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "loading_bar_background_grass": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점에서 이동하는 거리
                "offset": [0, "15%"],
                // 가로/세로 크기
                "size": [200, 16],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "loading_bar": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 애니메이션 목록
                      "anims": [
                        "@hud.anim_loading_bar"
                      ],
                      // ?? ????
                      "clips_children": true,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "loading_bar_again": {
                            // 이미지 표시
                            "type": "image",
                            // 사용할 이미지 경로
                            "texture": "textures/ui/grass_bar",
                            // 가로/세로 크기
                            "size": [200, 16],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "loading_bar_background_grass_again": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 기준점에서 이동하는 거리
                "offset": [0, "25%"],
                // 가로/세로 크기
                "size": [200, 16],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "loading_bar": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "left_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "left_middle",
                      // 애니메이션 목록
                      "anims": [
                        "@hud.anim_loading_bar"
                      ],
                      // ?? ????
                      "clips_children": true,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "loading_bar_again": {
                            // 이미지 표시
                            "type": "image",
                            // 사용할 이미지 경로
                            "texture": "textures/ui/another_grass",
                            // 가로/세로 크기
                            "size": [200, 16],
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "left_middle",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "left_middle"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "tip_maybe": {
                // 글자 표시
                "type": "label",
                // 보여줄 글자
                "text": "Some text at the bottom",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점에서 이동하는 거리
                "offset": [0, -15]
              }
            },
            {
              // ???/?? ??
              "maybe_title": {
                // 글자 표시
                "type": "label",
                // 보여줄 글자
                "text": "Title(?)",
                // ??
                "font_type": "MinecraftTen",
                // ?? ?? ??
                "font_scale_factor": 1.5,
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 기준점에서 이동하는 거리
                "offset": [10, 10]
              }
            },
            {
              // ???/?? ??
              "lots_of_loading_anim": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 가로/세로 크기
                "size": ["100%c", "100%cm"],
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_right",
                // 기준점에서 이동하는 거리
                "offset": [-10, -10],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    "loading_icon_pickaxe": { //my favorite
                      // 이미지 표시
                      "type": "image",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 사용할 이미지 경로
                      "texture": "textures/ui/mine_chop_dig_animation",
                      // 가로/세로 크기
                      "size": [ 30, 30 ],
                      // ???? ??
                      "uv_size": [ 10, 10 ],
                      // ???? ?? ??
                      "uv": "@hud.pick_axe_animation",
                      // ?? (R,G,B,A)
                      "color": [ 1, 1, 1, 1 ]
                    }
                  },
                  {
                    // ???/?? ??
                    "spacer": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [5, 0]
                    }
                  },
                  {
                    // ???/?? ??
                    "loading_icon_porlat": {
                      // 이미지 표시
                      "type": "image",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 1,
                      // 사용할 이미지 경로
                      "texture": "textures/ui/realms_plus_hover",
                      // ???? ?? ??
                      "uv": "@hud.portal_animation",
                      // 가로/세로 크기
                      "size": [ 30, 30 ],
                      // ???? ??
                      "uv_size": [ 19, 19 ]
                    }
                  },
                  {
                    // ???/?? ??
                    "spacer": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [5, 0]
                    }
                  },
                  {
                    // ???/?? ??
                    "realms_stories_icon_animated": {
                      // 이미지 표시
                      "type": "image",
                      // 사용할 이미지 경로
                      "texture": "textures/ui/realmsStoriesIconAnimated",
                      // 가로/세로 크기
                      "size": [ 30, 30 ],
                      // ???? ??
                      "uv_size": [ 22, 22 ],
                      // ???? ?? ??
                      "uv": "@hud.anim_realms_stories_icon",
                      // ????? ?? ?
                      "disable_anim_fast_forward": true
                    }
                  },
                  {
                    // ???/?? ??
                    "spacer": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [5, 0]
                    }
                  },
                  {
                    // ???/?? ??
                    "loading_progress_spinner": {
                      // 이미지 표시
                      "type": "image",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 사용할 이미지 경로
                      "texture": "textures/ui/loading_spin",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, 6 ],
                      // ???? ??
                      "uv_size": [ 7, 7 ],
                      // 가로/세로 크기
                      "size": [ 20, 20 ],
                      // ???? ?? ??
                      "uv": "@hud.spinner_animation"
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "test": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/icon_panda", //why not
                // 가로/세로 크기
                "size": [30, 30],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_right",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_right",
                // 기준점에서 이동하는 거리
                "offset": [-10, 10]
              }
            },
            {
              // ???/?? ??
              "chest": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/realms_particles",
                // 가로/세로 크기
                "size": [100, 100],
                // ???
                "alpha": 0.3,
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점에서 이동하는 거리
                "offset": ["-30%", "-28%"]
              }
            },
            {
              // ???/?? ??
              "chest": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/realms_particles",
                // 가로/세로 크기
                "size": [50, 50],
                // ???
                "alpha": 0.1,
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_middle",
                // 기준점에서 이동하는 거리
                "offset": ["30%", "-18%"]
              }
            },
            {
              // ???/?? ??
              "loading_stack": {
                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                "type": "stack_panel",
                // 쌓는 방향(가로/세로)
                "orientation": "horizontal",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_left",
                // 기준점에서 이동하는 거리
                "offset": [10, -10],
                // 가로/세로 크기
                "size": ["100%c", "100%cm"],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "icon": {
                      // 이미지 표시
                      "type": "image",
                      // 사용할 이미지 경로
                      "texture": "textures/ui/worldsIcon",
                      // 가로/세로 크기
                      "size": [30, 30]
                    }
                  },
                  {
                    // ???/?? ??
                    "spacer": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [5, 0]
                    }
                  },
                  {
                    // ???/?? ??
                    "wrapper_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": ["100%c", "100%c"],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "loading_text": {
                            // 글자 표시
                            "type": "label",
                            // 보여줄 글자
                            "text": "Loading...",
                            // ??
                            "font_type": "MinecraftTen",
                            // 기준점에서 이동하는 거리
                            "offset": [0, 5],
                            // ?? ?? ??
                            "font_scale_factor": 1.4
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "chat_grid_item/chat_background": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#text - '<' - '>')",
        // 결과가 들어갈 속성
        "target_property_name": "#text_n"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#text_n - $flag_for_loading_anim = #text_n)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "root_panel": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "controls",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          {
            // ???/?? ??
            "loading_animation_factory": {
              // 패널: 다른 부품을 담는 바닥판
              "type": "panel",
              // 목록 아이템을 자동으로 생성
              "factory": {
                // ?? ??
                "name": "chat_item_factory",
                // 팩토리 템플릿 매핑
                "control_ids": {
                  // ?? ??
                  "chat_item": "animation_generator@hud.animation_generator"
                }
              }
            }
          }
        ]
      }
    ]
  }
}

loading_bar_filler.json 초보 예제 모음 · loading anim template

필요한 부분만 참고해서 가져가세요.

// 예제: loading_bar_filler.json
// 분류: 초보 예제 모음 / loading anim template
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 4,
  // ???/?? ??
  "base_size": [
    200,
    16
  ]
}

가로스크롤 예제

horizontal_scroll_view.json 초보 예제 모음 · 가로스크롤 예제

필요한 부분만 참고해서 가져가세요.

// 예제: horizontal_scroll_view.json
// 분류: 초보 예제 모음 / 가로스크롤 예제
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "common",
  // ???/?? ??
  "horizontal_scroll_view": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // ?? ????
    "clips_children": true,
    // 가로/세로 크기
    "size": [
      "100%",
      "100%"
    ],
    // 오버라이드 가능한 변수
    "$scrolling_content|default": "common.empty_panel",
    // 오버라이드 가능한 변수
    "$scrolling_size|default": [
      "200%c - 100%",
      "100%"
    ],
    // 오버라이드 가능한 변수
    "$bg_size|default": [
      "100%",
      "100%"
    ],
    // 오버라이드 가능한 변수
    "$use_background|default": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "scroll_track": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": -1,
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$scrolling_size",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "draggable_box": {
                // 컨트롤 종류
                "type": "scrollbar_box",
                // ??? ??
                "draggable": "horizontal",
                // ?? ??
                "contained": true,
                // 겹치는 순서(숫자 클수록 위)
                "layer": 100,
                // 가로/세로 크기
                "size": [
                  "100%c",
                  "100%"
                ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // ?? ??
                "consume_hover_events": false,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // ???/?? ??
                    "control_layer_panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size": [
                        "100%c",
                        "100%"
                      ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": -95,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "scrolling_content@$scrolling_content": {}
                        }
                      ]
                    }
                  }
                ],
                // 입력 키/버튼과 동작 연결
                "button_mappings": [
                  {
                    // 어떤 입력을 받을지
                    "from_button_id": "button.menu_select",
                    // 어떤 동작을 실행할지
                    "to_button_id": "button.menu_select",
                    // 입력 시점(pressed 등)
                    "mapping_type": "pressed",
                    // ?? ??
                    "consume_event": false,
                    // ?? ?? ?
                    "button_up_right_of_first_refusal": true
                  }
                ]
              }
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "bg@common.scroll_indent_image": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": -2,
          // 가로/세로 크기
          "size": "$bg_size",
          // 보이기/숨기기(공간 유지)
          "visible": "$use_background"
        }
      }
    ]
  },
  // ???/?? ??
  "hscroll_demo_item": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [
      80,
      80
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "bg": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // ???
          "alpha": 0.15,
          // 가로/세로 크기
          "size": [
            "100%",
            "100%"
          ]
        }
      },
      {
        // ???/?? ??
        "label": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "$text|default",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center"
        }
      }
    ]
  },
  // ???/?? ??
  "hscroll_demo_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 가로/세로 크기
    "size": [
      "default",
      "100%"
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "i01@common.hscroll_demo_item": {
          // 오버라이드 가능한 변수
          "$text": "1"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "i02@common.hscroll_demo_item": {
          // 오버라이드 가능한 변수
          "$text": "2"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "i03@common.hscroll_demo_item": {
          // 오버라이드 가능한 변수
          "$text": "3"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "i04@common.hscroll_demo_item": {
          // 오버라이드 가능한 변수
          "$text": "4"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "i05@common.hscroll_demo_item": {
          // 오버라이드 가능한 변수
          "$text": "5"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "i06@common.hscroll_demo_item": {
          // 오버라이드 가능한 변수
          "$text": "6"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "i07@common.hscroll_demo_item": {
          // 오버라이드 가능한 변수
          "$text": "7"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "i08@common.hscroll_demo_item": {
          // 오버라이드 가능한 변수
          "$text": "8"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "i09@common.hscroll_demo_item": {
          // 오버라이드 가능한 변수
          "$text": "9"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "i10@common.hscroll_demo_item": {
          // 오버라이드 가능한 변수
          "$text": "10"
        }
      }
    ]
  },
  // ???/?? ??
  "hscroll_demo_container": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [
      "100%",
      110
    ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hscroll@common.horizontal_scroll_view": {
          // 가로/세로 크기
          "size": [
            "100%",
            "100%"
          ],
          // 오버라이드 가능한 변수
          "$scrolling_content": "common.hscroll_demo_content",
          // 오버라이드 가능한 변수
          "$scrolling_size": [
            "200%c - 100%",
            "100%"
          ],
          // 오버라이드 가능한 변수
          "$use_background": true
        }
      }
    ]
  }
}

예제1

_global_variables.json 초보 예제 모음 · 예제1

필요한 부분만 참고해서 가져가세요.

// 예제: _global_variables.json
// 분류: 초보 예제 모음 / 예제1
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
// SCOREHUD | COMMISSION Creator @Nperma
{
  // 오버라이드 가능한 변수
  "$title_texture": "textures/ui/title",

  //SIDE SCOREHUD
  "$sideleft_texture": "textures/scorehud_background",
  // 오버라이드 가능한 변수
  "$sideleft_alpha": 1,
  // 오버라이드 가능한 변수
  "$sideright_texture": "textures/scorehud_background",
  // 오버라이드 가능한 변수
  "$sideright_alpha": 1,


  //BODY SCOREHUD
  "$body_texture": "textures/scorehud_background",
  // 오버라이드 가능한 변수
  "$body_alpha": 1,

  //BODY TEXT SCOREHUD
  "$body_label_shadow": true,

  //SCOREUP1
  "$scoreup1_texture": "textures/scorehud_background",
  // 오버라이드 가능한 변수
  "$scoreup1_alpha": 1,

  //SCOREUP2
  "$scoreup2_texture": "textures/scorehud_background",
  // 오버라이드 가능한 변수
  "$scoreup2_alpha": 1,

  //SCOREUP3
  "$scoreup3_texture": "textures/scorehud_background",
  // 오버라이드 가능한 변수
  "$scoreup3_alpha": 1
}

code.json 초보 예제 모음 · 예제1

필요한 부분만 참고해서 가져가세요.

// 예제: code.json
// 분류: 초보 예제 모음 / 예제1
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // ???/?? ??
  "string_modification": {
    // 기준점에서 이동하는 거리
    "offset": [0, 25],
    // 글자 표시
    "type": "label",
    // 보여줄 글자
    "text": "#text",
    // 가로/세로 크기
    "size": ["default", "default"],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "input_box@common.text_edit_box": {
          // 기준점에서 이동하는 거리
          "offset": [0, -20],
          // 가로/세로 크기
          "size": [
            250,
            20
          ],
          // ?? ?? ?
          "max_length": 100,
          // 오버라이드 가능한 변수
          "$text_edit_text_control": "input_text",
          // 오버라이드 가능한 변수
          "$place_holder_text": "Placeholder...",
          // 오버라이드 가능한 변수
          "$text_alignment": "left"
        }
      },
      {
        // ???/?? ??
        "dynamic": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [0, 0],
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#iterator": 0,
            // ???/??? ?
            "#output": "§z",
            // ???/??? ?
            "# ": " ","#A": "a","#B": "b","#C": "c","#D": "d","#E": "e","#F": "f","#G": "g","#H": "h","#I": "i","#J": "j","#K": "k","#L": "l",
            // ???/??? ?
            "#M": "m","#N": "n","#O": "o","#P": "p","#Q": "q","#R": "r","#S": "s","#T": "t","#U": "u","#V": "v","#W": "w","#X": "x","#Y": "y",
            // ???/??? ?
            "#Z": "z","#a": "a","#b": "b","#c": "c","#d": "d","#e": "e","#f": "f","#g": "g","#h": "h","#i": "i","#j": "j","#k": "k","#l": "l",
            // ???/??? ?
            "#m": "m","#n": "n","#o": "o","#p": "p","#q": "q","#r": "r","#s": "s","#t": "t","#u": "u","#v": "v","#w": "w","#x": "x","#y": "y",
            // ???/??? ?
            "#z": "z","#0": "0","#1": "1","#2": "2","#3": "3","#4": "4","#5": "5","#6": "6","#7": "7","#8": "8","#9": "9","#.": ".","#,": ",",
            // ???/??? ?
            "#!": "!","#_": "_","#&": "&","#(": "(","#)": ")","#?": "?","#{": "{","#}": "}","#[": "[","#]": "]","#:": ":","#'": "'","#\"": "\""
          },
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "input_text",
              // 계산식/참조 값
              "source_property_name": "('§z' + #item_name)",
              // 결과가 들어갈 속성
              "target_property_name": "#string"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(('%.' + (#iterator + 3) + 's') * #output + ('#' + (('%.' + (#iterator + 4) + 's') * #string - ('%.' + (#iterator + 3) + 's') * #string)))",
              // 결과가 들어갈 속성
              "target_property_name": "#output"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#iterator + 1 - (('%.' + (#iterator + 3) + 's') * #output = #output))",
              // 결과가 들어갈 속성
              "target_property_name": "#iterator"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#iterator * (1 - (('%.' + (#iterator + 2) + 's') * #string = #string)))",
              // 결과가 들어갈 속성
              "target_property_name": "#iterator"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "static": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [0, 0],
          // 이 컨트롤 안에서 쓰는 임시 저장소
          "property_bag": {
            // ???/??? ?
            "#string": "§z123THIS IS A FULLY CAPITALIZED STRING. LOWERCASED USING BINDINGS.",
            // ???/??? ?
            "#iterator": 0,
            // ???/??? ?
            "#length": 0,
            // ???/??? ?
            "#output": "§z",
            // ???/??? ?
            "# ": " ","#A": "a","#B": "b","#C": "c","#D": "d","#E": "e","#F": "f","#G": "g","#H": "h","#I": "i","#J": "j","#K": "k","#L": "l",
            // ???/??? ?
            "#M": "m","#N": "n","#O": "o","#P": "p","#Q": "q","#R": "r","#S": "s","#T": "t","#U": "u","#V": "v","#W": "w","#X": "x","#Y": "y",
            // ???/??? ?
            "#Z": "z","#a": "a","#b": "b","#c": "c","#d": "d","#e": "e","#f": "f","#g": "g","#h": "h","#i": "i","#j": "j","#k": "k","#l": "l",
            // ???/??? ?
            "#m": "m","#n": "n","#o": "o","#p": "p","#q": "q","#r": "r","#s": "s","#t": "t","#u": "u","#v": "v","#w": "w","#x": "x","#y": "y",
            // ???/??? ?
            "#z": "z","#0": "0","#1": "1","#2": "2","#3": "3","#4": "4","#5": "5","#6": "6","#7": "7","#8": "8","#9": "9","#.": ".","#,": ",",
            // ???/??? ?
            "#!": "!","#_": "_","#&": "&","#(": "(","#)": ")","#?": "?","#{": "{","#}": "}","#[": "[","#]": "]","#:": ":","#'": "'","#\"": "\""
          },
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(('%.' + (#iterator + 3) + 's') * #output + ('#' + (('%.' + (#iterator + 4) + 's') * #string - ('%.' + (#iterator + 3) + 's') * #string)))",
              // 결과가 들어갈 속성
              "target_property_name": "#output"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#iterator + 1 - (#output = #temp))",
              // 결과가 들어갈 속성
              "target_property_name": "#iterator"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "#output",
              // 결과가 들어갈 속성
              "target_property_name": "#temp"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#iterator * (1 - (('%.' + (#iterator + 2) + 's') * #string = #string)))",
              // 결과가 들어갈 속성
              "target_property_name": "#iterator"
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "dynamic",
        // 계산식/참조 값
        "source_property_name": "('Dynamic: ' + #output + #iterator)",
        // 결과가 들어갈 속성
        "target_property_name": "#text1"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // ?? ??
        "source_control_name": "static",
        // 계산식/참조 값
        "source_property_name": "('\nStatic: ' + #output + #iterator)",
        // 결과가 들어갈 속성
        "target_property_name": "#text2"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#text1 + #text2)",
        // 결과가 들어갈 속성
        "target_property_name": "#text"
      }
    ]
  }
}

hud_screen.json 초보 예제 모음 · 예제1

필요한 부분만 참고해서 가져가세요.

// 예제: hud_screen.json
// 분류: 초보 예제 모음 / 예제1
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "hud",
  // ???/?? ??
  "hud_title_text": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [{
      // 가져올 값 이름
      "binding_name": "#hud_title_text_string",
      // 가져온 값을 다른 속성으로 연결
      "binding_name_override": "#text",
      // 게임이 주는 전역 값 연결
      "binding_type": "global"
    },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((not (('%.6s' * #text) = 'nperma')) and (not (#text = '')))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }]
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "nperma_root@common.empty_panel": {
    // 이 안에 들어가는 부품 목록
    "controls":[{
      // 다른 템플릿을 가져와서 확장(상속)
      "scorehud_layout@hud.scorehud": {}
    },
      {
        // ???/?? ??
        "scorehud_upper_layout": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size":["33.33%",
            16],
          // ???
          "alpha": 0.3,
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 기준점에서 이동하는 거리
          "offset":[-2,
            2],

          // 이 안에 들어가는 부품 목록
          "controls":[{
            // ???/?? ??
            "subhud": {
              // 줄맞춤 컨테이너: 가로/세로로 자동 배치
              "type": "stack_panel",
              // 쌓는 방향(가로/세로)
              "orientation": "horizontal",
              // 가로/세로 크기
              "size":["100%c",
                "100%"],
              // 기준점(어디에서 시작할지)
              "anchor_from": "top_right",
              // 붙일 위치(어디에 놓을지)
              "anchor_to": "top_right",
              // 이 안에 들어가는 부품 목록
              "controls":[{
                // ???/?? ??
                "scoreup1": {
                  // 패널: 다른 부품을 담는 바닥판
                  "type": "panel",
                  // 가로/세로 크기
                  "size":["250%y+2px",
                    "100%"],
                  // 게임 값과 연결하는 규칙 목록
                  "bindings":[{
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "resolve_sibling_scope": true,
                    // ?? ??
                    "source_control_name": "subhud",
                    // 계산식/참조 값
                    "source_property_name": "(not (#text1=''))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }],
                  // 이 안에 들어가는 부품 목록
                  "controls":[{
                    // ???/?? ??
                    "background": {
                      // 이미지 표시
                      "type": "image",
                      // 사용할 이미지 경로
                      "texture": "$scoreup1_texture",
                      // ???
                      "alpha": "$scoreup1_alpha",
                      // 가로/세로 크기
                      "size":["100%-2px",
                        "100%"],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_right",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_right",
                      // 이 안에 들어가는 부품 목록
                      "controls":[{
                        // ???/?? ??
                        "label": {
                          // 글자 표시
                          "type": "label",
                          // 보여줄 글자
                          "text":"#text",
                          // ?? ??
                          "text_alignment": "center",
                          // ?? ??
                          "shadow": true,
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 114,
                          // 가로/세로 크기
                          "size":["100%-2px",
                            "100%-2px"],
                          // ?? ?? ??
                          "font_scale_factor": 0.85,
                          // 기준점에서 이동하는 거리
                          "offset":[0,
                            2],
                          // 게임 값과 연결하는 규칙 목록
                          "bindings":[{
                            // 가져올 값 이름
                            "binding_name": "#hud_title_text_string",
                            // 가져온 값을 다른 속성으로 연결
                            "binding_name_override": "#nperma",
                            // 게임이 주는 전역 값 연결
                            "binding_type": "global"
                          },
                            {
                              // 계산/조건 결과를 연결
                              "binding_type": "view",
                              // 계산식/참조 값
                              "source_property_name": "(#nperma-'nperma')",
                              // 결과가 들어갈 속성
                              "target_property_name": "#komisi"
                            },
                            {
                              // 계산/조건 결과를 연결
                              "binding_type": "view",
                              // 계산식/참조 값
                              "source_property_name": "(('§z')+('%.60s'*#komisi)-('%.40s'*#komisi)-'\t')",
                              // 결과가 들어갈 속성
                              "target_property_name": "#text"
                            }]
                        }
                      }]
                    }
                  }]
                }
              },
                {
                  // ???/?? ??
                  "scoreup2": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size":["250%y+2px",
                      "100%"],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings":[{
                      // 계산/조건 결과를 연결
                      "binding_type": "view",
                      // ?? ??
                      "resolve_sibling_scope": true,
                      // ?? ??
                      "source_control_name": "subhud",
                      // 계산식/참조 값
                      "source_property_name": "(not (#text2=''))",
                      // 결과가 들어갈 속성
                      "target_property_name": "#visible"
                    }],
                    // 이 안에 들어가는 부품 목록
                    "controls":[{
                      // ???/?? ??
                      "background": {
                        // 이미지 표시
                        "type": "image",
                        // 사용할 이미지 경로
                        "texture": "$scoreup2_texture",
                        // ???
                        "alpha": "$scoreup2_alpha",
                        // 가로/세로 크기
                        "size":["100%-2px",
                          "100%"],
                        // 기준점(어디에서 시작할지)
                        "anchor_from": "top_right",
                        // 붙일 위치(어디에 놓을지)
                        "anchor_to": "top_right",
                        // 이 안에 들어가는 부품 목록
                        "controls":[{
                          // ???/?? ??
                          "label": {
                            // 글자 표시
                            "type": "label",
                            // 보여줄 글자
                            "text":"#text",
                            // ?? ??
                            "text_alignment": "center",
                            // ?? ??
                            "shadow": true,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 114,
                            // 가로/세로 크기
                            "size":["100%-2px",
                              "100%-2px"],
                            // ?? ?? ??
                            "font_scale_factor": 0.85,
                            // 기준점에서 이동하는 거리
                            "offset":[0,
                              2],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings":[{
                              // 가져올 값 이름
                              "binding_name": "#hud_title_text_string",
                              // 가져온 값을 다른 속성으로 연결
                              "binding_name_override": "#nperma",
                              // 게임이 주는 전역 값 연결
                              "binding_type": "global"
                            },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(#nperma-'nperma')",
                                // 결과가 들어갈 속성
                                "target_property_name": "#komisi"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(('§z')+('%.80s'*#komisi)-('%.60s'*#komisi)-'\t')",
                                // 결과가 들어갈 속성
                                "target_property_name": "#text"
                              }]
                          }
                        }]
                      }
                    }]
                  }
                },
                {
                  // ???/?? ??
                  "scoreup3": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size":["250%y+2px",
                      "100%"],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings":[{
                      // 계산/조건 결과를 연결
                      "binding_type": "view",
                      // ?? ??
                      "resolve_sibling_scope": true,
                      // ?? ??
                      "source_control_name": "subhud",
                      // 계산식/참조 값
                      "source_property_name": "(not (#text3=''))",
                      // 결과가 들어갈 속성
                      "target_property_name": "#visible"
                    }],
                    // 이 안에 들어가는 부품 목록
                    "controls":[{
                      // ???/?? ??
                      "background": {
                        // 이미지 표시
                        "type": "image",
                        // 사용할 이미지 경로
                        "texture": "$scoreup3_texture",
                        // ???
                        "alpha": "$scoreup3_alpha",
                        // 가로/세로 크기
                        "size":["100%-2px",
                          "100%"],
                        // 기준점(어디에서 시작할지)
                        "anchor_from": "top_right",
                        // 붙일 위치(어디에 놓을지)
                        "anchor_to": "top_right",
                        // 이 안에 들어가는 부품 목록
                        "controls":[{
                          // ???/?? ??
                          "label": {
                            // 글자 표시
                            "type": "label",
                            // 보여줄 글자
                            "text":"#text",
                            // ?? ??
                            "text_alignment": "center",
                            // ?? ??
                            "shadow": true,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 114,
                            // 가로/세로 크기
                            "size":["100%-2px",
                              "100%-2px"],
                            // ?? ?? ??
                            "font_scale_factor": 0.85,
                            // 기준점에서 이동하는 거리
                            "offset":[0,
                              2],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings":[{
                              // 가져올 값 이름
                              "binding_name": "#hud_title_text_string",
                              // 가져온 값을 다른 속성으로 연결
                              "binding_name_override": "#nperma",
                              // 게임이 주는 전역 값 연결
                              "binding_type": "global"
                            },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(#nperma-'nperma')",
                                // 결과가 들어갈 속성
                                "target_property_name": "#komisi"
                              },
                              {
                                // 계산/조건 결과를 연결
                                "binding_type": "view",
                                // 계산식/참조 값
                                "source_property_name": "(('§z')+('%.100s'*#komisi)-('%.80s'*#komisi)-'\t')",
                                // 결과가 들어갈 속성
                                "target_property_name": "#text"
                              }]
                          }
                        }]
                      }
                    }]
                  }
                }],
              // 게임 값과 연결하는 규칙 목록
              "bindings":[{
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // ?? ??
                "resolve_sibling_scope": true,
                // ?? ??
                "source_control_name": "scorehud_upper_layout",
                // 계산식/참조 값
                "source_property_name": "#score1",
                // 결과가 들어갈 속성
                "target_property_name": "#text1"
              },
                {
                  // 계산/조건 결과를 연결
                  "binding_type": "view",
                  // ?? ??
                  "resolve_sibling_scope": true,
                  // ?? ??
                  "source_control_name": "scorehud_upper_layout",
                  // 계산식/참조 값
                  "source_property_name": "#score2",
                  // 결과가 들어갈 속성
                  "target_property_name": "#text2"
                },
                {
                  // 계산/조건 결과를 연결
                  "binding_type": "view",
                  // ?? ??
                  "resolve_sibling_scope": true,
                  // ?? ??
                  "source_control_name": "scorehud_upper_layout",
                  // 계산식/참조 값
                  "source_property_name": "#score3",
                  // 결과가 들어갈 속성
                  "target_property_name": "#text3"
                }]
            }
          }],

          // 게임 값과 연결하는 규칙 목록
          "bindings": [{
            // 가져올 값 이름
            "binding_name": "#hud_title_text_string",
            // 가져온 값을 다른 속성으로 연결
            "binding_name_override": "#nperma",
            // 게임이 주는 전역 값 연결
            "binding_type": "global"
          },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#nperma-'nperma')",
              // 결과가 들어갈 속성
              "target_property_name": "#komisi"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(('%.60s'*#komisi)-('%.40s'*#komisi)-'\t')",
              // 결과가 들어갈 속성
              "target_property_name": "#score1"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(('%.80s'*#komisi)-('%.60s'*#komisi)-'\t')",
              // 결과가 들어갈 속성
              "target_property_name": "#score2"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(('%.100s'*#komisi)-('%.80s'*#komisi)-'\t')",
              // 결과가 들어갈 속성
              "target_property_name": "#score3"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((('%.6s' * #nperma) = 'nperma') and (not (#score1='')) and (not (#score2='')) and (not (#score3='')))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }]
        }
      }]
  },

  // ???/?? ??
  "scorehud": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size":[85,
      224],
    // 기준점(어디에서 시작할지)
    "anchor_from": "right_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "right_middle",
    // 기준점에서 이동하는 거리
    "offset":[-2,
      -18],
    // 이 안에 들어가는 부품 목록
    "controls":[{
      // ???/?? ??
      "layout": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size":["100%",
          "100%"],
        // 이 안에 들어가는 부품 목록
        "controls":[{
          // ???/?? ??
          "stacked_vertical": {
            // 줄맞춤 컨테이너: 가로/세로로 자동 배치
            "type": "stack_panel",
            // 쌓는 방향(가로/세로)
            "orientation": "vertical",
            // 가로/세로 크기
            "size":["100%",
              "100%c"],
            // 이 안에 들어가는 부품 목록
            "controls":[{
              // ???/?? ??
              "title_panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size":["100%",
                  28],
                // 이 안에 들어가는 부품 목록
                "controls":[{
                  // ???/?? ??
                  "title": {
                    // 이미지 표시
                    "type": "image",
                    // 사용할 이미지 경로
                    "texture": "$title_texture",
                    // 가로/세로 크기
                    "size":["100%",
                      "100%"],
                    // 기준점에서 이동하는 거리
                    "offset":[0,
                      0]
                  }
                }]
              }
            },
              {
                // ???/?? ??
                "empty": {
                  // 패널: 다른 부품을 담는 바닥판
                  "type": "panel",
                  // 가로/세로 크기
                  "size":[0,
                    2]
                }
              },
              {
                // ???/?? ??
                "elements": {
                  // 패널: 다른 부품을 담는 바닥판
                  "type": "panel",
                  // 가로/세로 크기
                  "size":["100%",
                    16],
                  // 이 안에 들어가는 부품 목록
                  "controls":[{
                    // ???/?? ??
                    "stacked": {
                      // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                      "type": "stack_panel",
                      // 쌓는 방향(가로/세로)
                      "orientation": "horizontal",
                      // 가로/세로 크기
                      "size":["100%",
                        "100%"],
                      // 이 안에 들어가는 부품 목록
                      "controls":[{
                        // ???/?? ??
                        "eb": {
                          // 이미지 표시
                          "type": "image",
                          // 가로/세로 크기
                          "size":["50%-1px",
                            "100%"],
                          // 사용할 이미지 경로
                          "texture": "$sideleft_texture",
                          // ???
                          "alpha": "$sideleft_alpha",
                          // 이 안에 들어가는 부품 목록
                          "controls":[{
                            // ???/?? ??
                            "label": {
                              // 글자 표시
                              "type": "label",
                              // 보여줄 글자
                              "text": "#text",
                              // 가로/세로 크기
                              "size": ["100%-2px",
                                "100%-2px"],
                              // 겹치는 순서(숫자 클수록 위)
                              "layer": 144,
                              // 기준점에서 이동하는 거리
                              "offset":[0,
                                2],
                              // ?? ?? ??
                              "font_scale_factor": 0.8,
                              // ?? ??
                              "text_alignment": "center",
                              // ?? ??
                              "shadow": true,
                              // 게임 값과 연결하는 규칙 목록
                              "bindings":[{
                                // 가져올 값 이름
                                "binding_name": "#hud_title_text_string",
                                // 게임이 주는 전역 값 연결
                                "binding_type": "global"
                              },
                                {
                                  // 계산/조건 결과를 연결
                                  "binding_type": "view",
                                  // 계산식/참조 값
                                  "source_property_name": "(('%.20s'*(#hud_title_text_string-'nperma'))-'\t')",
                                  // 결과가 들어갈 속성
                                  "target_property_name": "#text"
                                }]
                            }
                          }]
                        }
                      },
                        {
                          // ???/?? ??
                          "empty": {
                            // 패널: 다른 부품을 담는 바닥판
                            "type": "panel",
                            // 가로/세로 크기
                            "size":[2,
                              0]
                          }
                        },
                        {
                          // ???/?? ??
                          "ep": {
                            // 이미지 표시
                            "type": "image",
                            // 가로/세로 크기
                            "size":["50%-1px",
                              "100%"],
                            // 사용할 이미지 경로
                            "texture": "$sideright_texture",
                            // ???
                            "alpha": "$sideright_alpha",
                            // 이 안에 들어가는 부품 목록
                            "controls":[{
                              // ???/?? ??
                              "label": {
                                // 글자 표시
                                "type": "label",
                                // 보여줄 글자
                                "text": "#text",
                                // 가로/세로 크기
                                "size": ["100%-2px",
                                  "100%-2px"],
                                // 기준점에서 이동하는 거리
                                "offset":[0,
                                  2],
                                // ?? ??
                                "shadow": true,
                                // ?? ?? ??
                                "font_scale_factor": 0.85,
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": 144,
                                // ?? ??
                                "text_alignment": "center",
                                // 게임 값과 연결하는 규칙 목록
                                "bindings":[{
                                  // 가져올 값 이름
                                  "binding_name": "#hud_title_text_string",
                                  // 게임이 주는 전역 값 연결
                                  "binding_type": "global"
                                },
                                  {
                                    // 계산/조건 결과를 연결
                                    "binding_type": "view",
                                    // 계산식/참조 값
                                    "source_property_name": "('§z'+('%.40s'*(#hud_title_text_string-'nperma')-('%.20s'*(#hud_title_text_string-'nperma')))-'\t')",
                                    // 결과가 들어갈 속성
                                    "target_property_name": "#text"
                                  }]
                              }
                            }]
                          }
                        }]
                    }
                  }]
                }
              },
              {
                // ???/?? ??
                "empty": {
                  // 패널: 다른 부품을 담는 바닥판
                  "type": "panel",
                  // 가로/세로 크기
                  "size":[0,
                    2]
                }
              },
              {
                // ???/?? ??
                "body": {
                  // 이미지 표시
                  "type": "image",
                  // 가로/세로 크기
                  "size":["100%",
                    "100%c"],
                  // ?? ?? ?
                  "min_size": ["100%",
                    80],
                  // 사용할 이미지 경로
                  "texture": "$body_texture",
                  // ???
                  "alpha": "$body_alpha",
                  // 이 안에 들어가는 부품 목록
                  "controls":[{
                    // ???/?? ??
                    "panel": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 가로/세로 크기
                      "size":["100%",
                        "100%c-4px"],
                      // 기준점에서 이동하는 거리
                      "offset":[0,
                        2],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "top_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_left",
                      // 이 안에 들어가는 부품 목록
                      "controls":[{
                        // ???/?? ??
                        "label": {
                          // 글자 표시
                          "type": "label",
                          // 보여줄 글자
                          "text": "#text",
                          // ?? ??
                          "shadow": "$body_label_shadow",
                          // 가로/세로 크기
                          "size":["100%-4px",
                            "default"],
                          // 겹치는 순서(숫자 클수록 위)
                          "layer": 144,
                          // ?? ?? ??
                          "font_scale_factor": 0.8,
                          // ??/?? ?
                          "line_padding": 2,
                          // 게임 값과 연결하는 규칙 목록
                          "bindings":[{
                            // 가져올 값 이름
                            "binding_name": "#hud_title_text_string",
                            // 게임이 주는 전역 값 연결
                            "binding_type": "global"
                          },
                            {
                              // 계산/조건 결과를 연결
                              "binding_type": "view",
                              // 계산식/참조 값
                              "source_property_name": "('§z'+(((#hud_title_text_string-'nperma') - ('%.100s'*(#hud_title_text_string-'nperma')))-'\t')",
                              // 결과가 들어갈 속성
                              "target_property_name": "#text"
                            }]
                        }
                      }]
                    }
                  }]
                }
              }]
          }
        }]
      }
    }],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [{
      // 가져올 값 이름
      "binding_name": "#hud_title_text_string",
      // 가져온 값을 다른 속성으로 연결
      "binding_name_override": "#nperma",
      // 게임이 주는 전역 값 연결
      "binding_type": "global"
    },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('%.6s' * #nperma) = 'nperma')",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }]
  },

  // ???/?? ??
  "hud_screen": {
    // 오버라이드 가능한 변수
    "$additional_screen_content": "hud.nperma_root"
  }
}

예제3

inventory_screen.json 초보 예제 모음 · 예제3

필요한 부분만 참고해서 가져가세요.

// 예제: inventory_screen.json
// 분류: 초보 예제 모음 / 예제3
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "crafting",
    // Add custom ui to main panel
    "crafting_panel_top_half": {
        // ?? ?? ??
        "modifications": [
            {
                // ?? ?? ??
                "array_name": "controls",
                // ?? ??
                "operation": "insert_back",
                // ??? ?
                "value": [
                    {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "custom_table_ui@crafting.custom_table_ui": {} // add your custom panel here
                    }
                ]
            }
        ]
    },
    // Hide normal ui if we are inside our custom table
    "work_bench_panel_3x3": {
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#crafting_label_text",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#text"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "((#text - 'your_text_to_detect') = #text)", // if table_name has your_text_to_detect, then we don't want to show normal 3x3 crafting ui
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ]
    },
    // Our custom ui for custom table
    "custom_table_ui": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#crafting_label_text",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#text"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(not ((#text - 'your_text_to_detect') = #text))", // show this only if it has your_text_to_detect in it.
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ]
    }
}

MagicWay UI 12 개

기본

_ui_defs.json MagicWay UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: _ui_defs.json
// 분류: MagicWay UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // ???/?? ??
    "ui_defs": [
        "ui/magic_reinforcement_table_screen.json",
        "ui/magic_learning_station_screen.json",
        "ui/magic_ui_util.json",
        "ui/scrolls_item_ui.json",
        "ui/spell_binding_table_screen.json",
        "ui/magic_hud_screen.json",
        "ui/a_magic_way_custom_panel.json",
        "ui/fast_swap_scroll.json"
    ]
}

a_magic_way_custom_panel.json MagicWay UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: a_magic_way_custom_panel.json
// 분류: MagicWay UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "a_magic_way_custom_panel",

    // ???/?? ??
    "long_form_replacement": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [0, 0],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "magic_learning_station_table@magic_learning_station.magic_learning_station_content": {
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#title_text = 'magic_learning_station.menu')",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "fast_swap_scroll_concent@fast_swap_scroll_screen.fast_swap_scroll_content": {
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#title_text = 'fast_swap_scroll.menu')",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            }
        ]
    }
}

chest_screen.json MagicWay UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: chest_screen.json
// 분류: MagicWay UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "chest",

    // ???/?? ??
    "small_chest_screen": {
        // 오버라이드 가능한 변수
        "$temp_container_title|default": "$container_title",
        // ?? ?? ??
        "modifications": [
			{
				// ?? ?? ??
				"array_name": "variables",
				// ?? ??
				"operation": "insert_back",
				// ??? ?
				"value": [
					{
                        // 이 조건이 맞으면 적용
                        "requires": "($temp_container_title = 'amw:spell_binding_table')",
                        // 오버라이드 가능한 변수
                        "$screen_content": "spell_binding_table.spell_binding_table_panel",
                        // 오버라이드 가능한 변수
                        "$screen_bg_content": "common.screen_background"
                    }
                ]
            },
			{
				// ?? ?? ??
				"array_name": "variables",
				// ?? ??
				"operation": "insert_back",
				// ??? ?
				"value": [
					{
                        // 이 조건이 맞으면 적용
                        "requires": "($temp_container_title = 'amw:magic_reinforcement_table')",
                        // 오버라이드 가능한 변수
                        "$screen_content": "magic_reinforcement_table.magic_reinforcement_table_panel",
                        // 오버라이드 가능한 변수
                        "$screen_bg_content": "common.screen_background"
                    }
                ]
            }
        ]
    }
}

fast_swap_scroll.json MagicWay UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: fast_swap_scroll.json
// 분류: MagicWay UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "fast_swap_scroll_screen",

    // ???/?? ??
    "fast_swap_scroll_content": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [ "100%", "100%" ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {

                // ???/?? ??
                "emote_wheel_touch_zone": {
                    // 클릭 가능한 버튼
                    "type": "button",
                    // 가로/세로 크기
                    "size": [ 4096, 4096 ],
                    // 입력 키/버튼과 동작 연결
                    "button_mappings": [
                      {
                        // 어떤 입력을 받을지
                        "from_button_id": "button.menu_select",
                        // 어떤 동작을 실행할지
                        "to_button_id": "button.menu_exit",
                        // 입력 시점(pressed 등)
                        "mapping_type": "global"
                      }
                    ],
                    // ???
                    "alpha": 0
                }
            },
            {
				// ???/?? ??
				"background": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/spell_wheel/change_slot_wheel",
					// 기준점(어디에서 시작할지)
					"anchor_from": "center",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "center",
					// ???
					"alpha": 0.9,
                    // 가로/세로 크기
                    "size": [ 256, 256 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 가져올 값 이름
                            "binding_name": "(not #is_using_gamepad)",
                            // 가져온 값을 다른 속성으로 연결
                            "binding_name_override": "#visible"
                        }
                    ]
				}
			},
            {
				// 다른 템플릿을 가져와서 확장(상속)
				"scroll_sort@fast_swap_scroll_screen.scroll_sort": {}
			},
            {
				// 다른 템플릿을 가져와서 확장(상속)
				"gamepad_scroll_panel@fast_swap_scroll_screen.gamepad_scroll_panel": {}
			}

        ]
    },

    // ???/?? ??
    "gamepad_scroll_panel": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 가로/세로 크기
        "size": [ "100%c", 130 ],
        // 쌓는 방향(가로/세로)
        "orientation": "horizontal",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
				// 다른 템플릿을 가져와서 확장(상속)
				"gamepad_scroll_sort@fast_swap_scroll_screen.gamepad_scroll_sort": {}
			},
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "left_control@fast_swap_scroll_screen.scroll_small_background": {}
            },
            {
                // ???/?? ??
                "center_control": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [ 60, 130 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 가져올 값 이름
                            "binding_name": "(#form_button_length > 4)",
                            // 가져온 값을 다른 속성으로 연결
                            "binding_name_override": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "right_control@fast_swap_scroll_screen.scroll_small_background": {
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 가져올 값 이름
                            "binding_name": "(#form_button_length > 4)",
                            // 가져온 값을 다른 속성으로 연결
                            "binding_name_override": "#visible"
                        }
                    ]
                }
            }
        ],
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "(#is_using_gamepad)",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#visible"
            }
        ]
    },

    // ???/?? ??
    "scroll_small_background": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [ 130, 130 ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "image": {
                    // 이미지 표시
                    "type": "image",
                    // 사용할 이미지 경로
                    "texture": "textures/ui/spell_wheel/change_slot_wheel_small",
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "center",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "center",
                    // ???
                    "alpha": 0.9,
                    // 가로/세로 크기
                    "size": [ 128, 128 ]
                }
            }
        ]
    },

    // ???/?? ??
    "gamepad_scroll_sort": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 가로/세로 크기
        "size": [ 0, 0 ],
        // 오버라이드 가능한 변수
        "$label_control": "fast_swap_scroll_screen.scroll_name_controller",
        // 오버라이드 가능한 변수
        "$helper_control": "fast_swap_scroll_screen.gamepad_helper",

        // 목록 아이템을 자동으로 생성
        "factory":{
            // ?? ??
            "name": "buttons",
            // ??? ???
            "control_name": "fast_swap_scroll_screen.gamepad_stacked_scroll"
        },

        // 목록 이름
        "collection_name": "form_buttons",
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#form_button_length",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#collection_length"
            }
        ]
    },

    // ???/?? ??
    "scroll_sort": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 가로/세로 크기
        "size": [ 0, 0 ],

        // 목록 아이템을 자동으로 생성
        "factory":{
            // ?? ??
            "name": "buttons",
            // ??? ???
            "control_name": "fast_swap_scroll_screen.stacked_scroll"
        },

        // 목록 이름
        "collection_name": "form_buttons",
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "(not #is_using_gamepad)",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#visible"
            },
            {
                // 가져올 값 이름
                "binding_name": "#form_button_length",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#collection_length"
            }
        ]
    },

    // ???/?? ??
    "gamepad_stacked_scroll": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "textures/ui/generic_14x14_face_button_up",
                    // 오버라이드 가능한 변수
                    "$gamepad_pressed": "button.menu_up",
					// 기준점에서 이동하는 거리
					"offset": [ 65, 20 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 0)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "textures/ui/generic_14x14_face_button_right",
                    // 오버라이드 가능한 변수
                    "$gamepad_pressed": "button.menu_right",
					// 기준점에서 이동하는 거리
					"offset": [ 110, 65 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 1)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "textures/ui/generic_14x14_face_button_down",
                    // 오버라이드 가능한 변수
                    "$gamepad_pressed": "button.menu_down",
					// 기준점에서 이동하는 거리
					"offset": [ 65, 110 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 2)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "textures/ui/generic_14x14_face_button_left",
                    // 오버라이드 가능한 변수
                    "$gamepad_pressed": "button.menu_left",
					// 기준점에서 이동하는 거리
					"offset": [ 20, 65 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 3)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "textures/ui/generic_bumper_right",
                    // 오버라이드 가능한 변수
                    "$gamepad_pressed": "button.menu_tab_right",
					// 기준점에서 이동하는 거리
					"offset": [ 285, 35 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 4)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "textures/ui/generic_right_trigger",
                    // 오버라이드 가능한 변수
                    "$gamepad_pressed": "button.menu_alternate_tab_right",
					// 기준점에서 이동하는 거리
					"offset": [ 285, 95 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 5)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "textures/ui/generic_left_trigger",
                    // 오버라이드 가능한 변수
                    "$gamepad_pressed": "button.menu_alternate_tab_left",
					// 기준점에서 이동하는 거리
					"offset": [ 225, 95 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 6)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "textures/ui/generic_bumper_left",
                    // 오버라이드 가능한 변수
                    "$gamepad_pressed": "button.menu_tab_left",
					// 기준점에서 이동하는 거리
					"offset": [ 225, 35 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 7)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "textures/ui/xbox_face_button_left",
                    // 오버라이드 가능한 변수
                    "$gamepad_pressed": "button.controller_select",
					// 기준점에서 이동하는 거리
					"offset": [ 160, 130 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 8)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            }
        ]
    },

    // ???/?? ??
    "stacked_scroll": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "keyboard.keyName.1",
                    // 오버라이드 가능한 변수
                    "$button_pressed": "button.slot1",
					// 기준점에서 이동하는 거리
					"offset": [ 0, -92 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 0)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "keyboard.keyName.2",
                    // 오버라이드 가능한 변수
                    "$button_pressed": "button.slot2",
					// 기준점에서 이동하는 거리
					"offset": [ 59, -70 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 1)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "keyboard.keyName.3",
                    // 오버라이드 가능한 변수
                    "$button_pressed": "button.slot3",
					// 기준점에서 이동하는 거리
					"offset": [ 91, -16 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 2)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "keyboard.keyName.4",
                    // 오버라이드 가능한 변수
                    "$button_pressed": "button.slot4",
					// 기준점에서 이동하는 거리
					"offset": [ 80, 46 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 3)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "keyboard.keyName.5",
                    // 오버라이드 가능한 변수
                    "$button_pressed": "button.slot5",
					// 기준점에서 이동하는 거리
					"offset": [ 31, 86 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 4)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "keyboard.keyName.6",
                    // 오버라이드 가능한 변수
                    "$button_pressed": "button.slot6",
					// 기준점에서 이동하는 거리
					"offset": [ -31, 86 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 5)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "keyboard.keyName.7",
                    // 오버라이드 가능한 변수
                    "$button_pressed": "button.slot7",
					// 기준점에서 이동하는 거리
					"offset": [ -80, 46 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 6)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "keyboard.keyName.8",
                    // 오버라이드 가능한 변수
                    "$button_pressed": "button.slot8",
					// 기준점에서 이동하는 거리
					"offset": [ -91, -16 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 7)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "scroll@fast_swap_scroll_screen.scroll_item": {
                    // 오버라이드 가능한 변수
                    "$keyboard_select": "keyboard.keyName.9",
                    // 오버라이드 가능한 변수
                    "$button_pressed": "button.slot9",
					// 기준점에서 이동하는 거리
					"offset": [ -59, -70 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 8)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            }
        ]
    },

    // ???/?? ??
    "spell_label": {
        // 이미지 표시
        "type": "image",
        // 가로/세로 크기
        "size": [ "100%c + 16px", "100%c + 2px" ],
        // 사용할 이미지 경로
        "texture": "textures/ui/hud_tip_text_background",
        // 기준점(어디에서 시작할지)
        "anchor_from": "bottom_middle",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "top_middle",
        // 오버라이드 가능한 변수
        "$max_size|default": "fill",
        // ???
        "alpha": 0.6,
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 보여줄 글자
                "text": {
                    // 글자 표시
                    "type": "label",
                    // 보여줄 글자
                    "text": "#text",
                    // ?? ?? ?
                    "max_size": "$max_size",
                    // ?? ??
                    "text_alignment": "center",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 가져올 값 이름
                            "binding_name": "#form_button_text",
                            // 가져온 값을 다른 속성으로 연결
                            "binding_name_override": "#text",
                            // 목록 데이터를 반복 연결
                            "binding_type": "collection",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        }
                    ]
                }
            }
        ]
    },

    // ???/?? ??
    "scroll_name_single": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [ "33.33%", "33.33%" ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "center_label@fast_swap_scroll_screen.spell_label": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "bottom_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "top_middle",
                    // 오버라이드 가능한 변수
                    "$max_size": [
                        "64px",
                        "default"
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 0)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "right_label@fast_swap_scroll_screen.spell_label": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "right_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "left_middle",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index < 5 and #collection_index > 0)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "left_label@fast_swap_scroll_screen.spell_label": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "left_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "right_middle",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index > 4)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            }
        ]
    },

    // ???/?? ??
    "scroll_name_controller": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [ "33.33%", "33.33%" ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "up_label@fast_swap_scroll_screen.spell_label": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "top_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "bottom_middle",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 0)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "center_label@fast_swap_scroll_screen.spell_label": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "bottom_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "top_middle",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 2 or #collection_index = 8)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "right_label@fast_swap_scroll_screen.spell_label": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "right_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "left_middle",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 1 or #collection_index = 4 or #collection_index = 5)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "left_label@fast_swap_scroll_screen.spell_label": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "left_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "right_middle",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 3 or #collection_index = 6 or #collection_index = 7)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            }
        ]
    },

    // ???/?? ??
    "gamepad_helper_image": {
        // 이미지 표시
        "type": "image",
        // 사용할 이미지 경로
        "texture": "$keyboard_select",
        // 가로/세로 크기
        "size": [ 26, 26 ],
        // 겹치는 순서(숫자 클수록 위)
        "layer": 2
    },

    // ???/?? ??
    "gamepad_helper": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [ "5%", "5%" ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "center_bottom@fast_swap_scroll_screen.gamepad_helper_image": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "bottom_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "top_middle",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 0)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "center_top@fast_swap_scroll_screen.gamepad_helper_image": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "top_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "bottom_middle",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 2 or #collection_index = 8)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "left@fast_swap_scroll_screen.gamepad_helper_image": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "left_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "right_middle",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 1)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "right@fast_swap_scroll_screen.gamepad_helper_image": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "right_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "left_middle",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 3)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "left_top@fast_swap_scroll_screen.gamepad_helper_image": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "top_left",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "bottom_right",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 4 or #collection_index = 5)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "right_top@fast_swap_scroll_screen.gamepad_helper_image": {
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "top_right",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "bottom_left",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 6 or #collection_index = 7)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            }
        ]
    },

    // ???/?? ??
    "default_helper": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [ "33.33%", "33.33%" ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "center_helper": {
                    // 글자 표시
                    "type": "label",
                    // 기준점에서 이동하는 거리
                    "offset": [ 0, 2 ],
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "top_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "bottom_middle",
                    // 보여줄 글자
                    "text": "$keyboard_select",
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 3,
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // ???/?? ??
                            "bg": {
                                // 이미지 표시
                                "type": "image",
                                // 사용할 이미지 경로
                                "texture": "textures/ui/spell_wheel/button_helper",
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": -1,
                                // 가로/세로 크기
                                "size": [
                                    "100% + 8px",
                                    "100% + 4px"
                                ]
                            }
                        }
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index = 0)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // ???/?? ??
                "right_helper": {
                    // 글자 표시
                    "type": "label",
                    // 기준점에서 이동하는 거리
                    "offset": [ 2, 6 ],
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "top_left",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "bottom_right",
                    // 보여줄 글자
                    "text": "$keyboard_select",
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 3,
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // ???/?? ??
                            "bg": {
                                // 이미지 표시
                                "type": "image",
                                // 사용할 이미지 경로
                                "texture": "textures/ui/spell_wheel/button_helper",
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": -1,
                                // 가로/세로 크기
                                "size": [
                                    "100% + 8px",
                                    "100% + 4px"
                                ]
                            }
                        }
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index < 5 and #collection_index > 0)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            },
            {
                // ???/?? ??
                "left_helper": {
                    // 글자 표시
                    "type": "label",
                    // 기준점에서 이동하는 거리
                    "offset": [ -2, 6 ],
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "top_right",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "bottom_left",
                    // 보여줄 글자
                    "text": "$keyboard_select",
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 3,
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // ???/?? ??
                            "bg": {
                                // 이미지 표시
                                "type": "image",
                                // 사용할 이미지 경로
                                "texture": "textures/ui/spell_wheel/button_helper",
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": -1,
                                // 가로/세로 크기
                                "size": [
                                    "100% + 8px",
                                    "100% + 4px"
                                ]
                            }
                        }
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#collection_index > 4)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            }
        ],
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "#keyboard_button_visible",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ]
    },

    // ???/?? ??
    "none": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel"
    },

    // 다른 템플릿을 가져와서 확장(상속)
    "scroll_item@common.button": {
        // 오버라이드 가능한 변수
        "$label_control|default": "fast_swap_scroll_screen.scroll_name_single",
        // 오버라이드 가능한 변수
        "$helper_control|default": "fast_swap_scroll_screen.default_helper",
        // 오버라이드 가능한 변수
        "$pressed_button_name": "button.form_button_click",
        // 오버라이드 가능한 변수
        "$keyboard_select|default": "",
        // 오버라이드 가능한 변수
        "$button_pressed|default": "",
        // 오버라이드 가능한 변수
        "$gamepad_pressed|default": "",
        // 가로/세로 크기
        "size": [ 72, 72 ],
        // 조건에 따라 변수 값을 바꾸기
        "variables": [
            {
                // 이 조건이 맞으면 적용
                "requires": "$touch",
                // 오버라이드 가능한 변수
                "$helper_control": "fast_swap_scroll_screen.none"
            }
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "label_name@$label_control": {}
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "helper@$helper_control": {}
            },
            {
                // ???/?? ??
                "background": {
                    // 이미지 표시
                    "type": "image",
                    // 사용할 이미지 경로
                    "texture": "textures/ui/scroll_frame_wheel",
                    // 가로/세로 크기
                    "size": [ "33.33%", "33.33%" ]
                }
            },
            {
                // ???/?? ??
                "pressed": {
                    // 이미지 표시
                    "type": "image",
                    // 사용할 이미지 경로
                    "texture": "textures/ui/scroll_frame_wheel_pressed",
                    // 가로/세로 크기
                    "size": [ "33.33%", "33.33%" ]
                }
            },
            {
                // ???/?? ??
                "hover": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // ???/?? ??
                            "image": {
                                // 이미지 표시
                                "type": "image",
                                // 사용할 이미지 경로
                                "texture": "textures/ui/focus_border_white",
                                // 가로/세로 크기
                                "size": [ "27.7%", "27.7%" ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "(not #is_using_gamepad)",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#visible"
                                    }
                                ]
                            }
                        }
                    ]
                }
            },
            {
                // ???/?? ??
                "scroll_image": {
                    // 이미지 표시
                    "type": "image",
                    // 사용할 이미지 경로
                    "texture": "#texture",
                    // 가로/세로 크기
                    "size": [ "22.22%", "22.22%" ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings":[
                      {
                        // 가져올 값 이름
                        "binding_name": "#form_button_texture",
                        // 가져온 값을 다른 속성으로 연결
                        "binding_name_override": "#texture",
                        // 목록 데이터를 반복 연결
                        "binding_type": "collection",
                        // 목록 이름
                        "binding_collection_name": "form_buttons"
                      },
                      {
                        // 가져올 값 이름
                        "binding_name": "#form_button_texture_file_system",
                        // 가져온 값을 다른 속성으로 연결
                        "binding_name_override": "#texture_file_system",
                        // 목록 데이터를 반복 연결
                        "binding_type": "collection",
                        // 목록 이름
                        "binding_collection_name": "form_buttons"
                      }
                    ]
                }
            }
        ],
        // 입력 키/버튼과 동작 연결
        "button_mappings": [
            {
                // 어떤 입력을 받을지
                "from_button_id": "$button_pressed",
                // 어떤 동작을 실행할지
                "to_button_id": "$pressed_button_name",
                // ?? ??
                "input_mode_condition": "not_gamepad",
                // 입력 시점(pressed 등)
                "mapping_type": "global"
            },
            {
                // 어떤 입력을 받을지
                "from_button_id": "$gamepad_pressed",
                // 어떤 동작을 실행할지
                "to_button_id": "$pressed_button_name",
                // ?? ??
                "input_mode_condition": "gamepad_and_not_gaze",
                // 입력 시점(pressed 등)
                "mapping_type": "global"
            },
            {
                // 어떤 입력을 받을지
                "from_button_id": "button.menu_select",
                // 어떤 동작을 실행할지
                "to_button_id": "$pressed_button_name",
                // ?? ??
                "input_mode_condition": "not_gamepad",
                // 입력 시점(pressed 등)
                "mapping_type": "pressed"
            },
            {
                // 어떤 입력을 받을지
                "from_button_id": "button.menu_ok",
                // 어떤 동작을 실행할지
                "to_button_id": "$pressed_button_name",
                // ?? ??
                "input_mode_condition": "not_gamepad",
                // 입력 시점(pressed 등)
                "mapping_type": "focused"
            }
        ]
    }
}

hud_screen.json MagicWay UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: hud_screen.json
// 분류: MagicWay UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// 이 파일의 이름표(다른 파일에서 @로 참조)
	"namespace": "hud",
	
	// ???/?? ??
	"root_panel": {
		// ?? ?? ??
		"modifications": [
			{
				// ?? ?? ??
				"array_name": "controls",
				// ?? ??
				"operation": "insert_front",
				// ??? ?
				"value": [
					{
						// 다른 템플릿을 가져와서 확장(상속)
						"magic_screen_panel@magic_hud.root_panel": {}
					}
				]
			}
		]
    }
}

magic_hud_screen.json MagicWay UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: magic_hud_screen.json
// 분류: MagicWay UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// 이 파일의 이름표(다른 파일에서 @로 참조)
	"namespace": "magic_hud",
	
	// ???/?? ??
	"custom_render": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 오버라이드 가능한 변수
		"$tiled|default": false,
		// 오버라이드 가능한 변수
		"$clip_direction|default": "up",
		// 오버라이드 가능한 변수
		"$fill_ratio|default": 15.0,
		// 오버라이드 가능한 변수
		"$size|default": [ 17, 17 ],
		// 오버라이드 가능한 변수
		"$uv_size|default": "$size",
		// 오버라이드 가능한 변수
		"$uv|default": [ 0, 0 ],
		// 오버라이드 가능한 변수
		"$target|default": "#roll",
		// 오버라이드 가능한 변수
		"$container|default": "roll_stamina_data_control",
		// 오버라이드 가능한 변수
		"$alpha|default": 1,
		// 오버라이드 가능한 변수
		"$background|default": "textures/ui/roll/default/empty",
		// 오버라이드 가능한 변수
		"$path|default": "textures/ui/roll/default/cooldown_",
		// 가로/세로 크기
		"size": "$size",
		// 기준점(어디에서 시작할지)
		"anchor_from": "center",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "center",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"background": {
					// 이미지 표시
					"type": "image",
					// 가로/세로 크기
					"size": "$size",
					// ???? ?? ??
					"uv": "$uv",
					// ???? ??
					"uv_size": "$uv_size",
					// 사용할 이미지 경로
					"texture": "$background",
					// ???
					"alpha": "$alpha"
				}
			},
			{
				// ???/?? ??
				"image": {
					// 이미지 표시
					"type": "image",
					// 가로/세로 크기
					"size": "$size",
					// ???? ?? ??
					"uv": "$uv",
					// ???? ??
					"uv_size": "$uv_size",
					// ???
					"alpha": "$alpha",
					// 사용할 이미지 경로
					"texture": "$path",
					// ??? ??
					"clip_direction": "$clip_direction",
					// 이미지 반복 여부
					"tiled": "$tiled",
					// ?? ??
					"clip_pixelperfect": false,
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "$container",
							// 계산식/참조 값
							"source_property_name": "(1.0 - ($target / $fill_ratio))",
							// 결과가 들어갈 속성
							"target_property_name": "#clip_ratio"
						}
					]
				}
			}
		]
    },

	// ???/?? ??
	"magic_select_main": {
		// 오버라이드 가능한 변수
		"$update_id": "magic_main",
		// 이미지 표시
		"type": "image",
		// 사용할 이미지 경로
		"texture": "#texture",
		// 기준점(어디에서 시작할지)
		"anchor_from": "center",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "center",
		// 가로/세로 크기
		"size": [ 16, 16 ],
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// ???
		"alpha": 1,
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 계산/조건 결과를 연결
				"binding_type": "view",
				// ?? ??
				"source_control_name": "data_control_magic_menu_main",
				// 계산식/참조 값
				"source_property_name": "(#stored_text - $update_id)",
				// 결과가 들어갈 속성
				"target_property_name": "#texture"
			}
		]
	},

	// ???/?? ??
	"magic_select_left": {
		// 오버라이드 가능한 변수
		"$update_id": "magic_left",
		// 이미지 표시
		"type": "image",
		// 사용할 이미지 경로
		"texture": "#texture",
		// 기준점(어디에서 시작할지)
		"anchor_from": "center",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "center",
		// 가로/세로 크기
		"size": [ 16, 16 ],
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// ???
		"alpha": 1,
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 계산/조건 결과를 연결
				"binding_type": "view",
				// ?? ??
				"source_control_name": "data_control_magic_menu_left",
				// 계산식/참조 값
				"source_property_name": "(#stored_text - $update_id)",
				// 결과가 들어갈 속성
				"target_property_name": "#texture"
			}
		]
	},
	
	// ???/?? ??
	"magic_select_right": {
		// 오버라이드 가능한 변수
		"$update_id": "magic_right",
		// 이미지 표시
		"type": "image",
		// 사용할 이미지 경로
		"texture": "#texture",
		// 기준점(어디에서 시작할지)
		"anchor_from": "center",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "center",
		// 가로/세로 크기
		"size": [ 16, 16 ],
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// ???
		"alpha": 1,
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 계산/조건 결과를 연결
				"binding_type": "view",
				// ?? ??
				"source_control_name": "data_control_magic_menu_right",
				// 계산식/참조 값
				"source_property_name": "(#stored_text - $update_id)",
				// 결과가 들어갈 속성
				"target_property_name": "#texture"
			}
		]
	},

	// ???/?? ??
	"magic_cast_param": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 기준점(어디에서 시작할지)
		"anchor_from": "center",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "center",
		// 가로/세로 크기
		"size": [ 22, 22 ],
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"start": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/magic_menu/magic_cooldown_start",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "magic_data_control_1",
							// 계산식/참조 값
							"source_property_name": "(#spell_cooldown = 53)",
							// 결과가 들어갈 속성
							"target_property_name": "#visible"
						}
					]
				}
			},
			{
				// ???/?? ??
				"finish": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/magic_menu/magic_cooldown_finish",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "magic_data_control_1",
							// 계산식/참조 값
							"source_property_name": "(#spell_cooldown = 51)",
							// 결과가 들어갈 속성
							"target_property_name": "#visible"
						}
					]
				}
			},
			{
				// ???/?? ??
				"locked": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/magic_menu/locked",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "magic_data_control_1",
							// 계산식/참조 값
							"source_property_name": "(#spell_cooldown = 52)",
							// 결과가 들어갈 속성
							"target_property_name": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"render@magic_hud.custom_render": {
					// 오버라이드 가능한 변수
					"$size": [ 22, 22 ],
					// 오버라이드 가능한 변수
					"$fill_ratio": 50.0,
					// 오버라이드 가능한 변수
					"$clip_direction": "down",
					// 오버라이드 가능한 변수
					"$background": "textures/ui/magic_menu/blank",
					// 오버라이드 가능한 변수
					"$path": "textures/ui/magic_menu/magic_duration/duration_full",
					// 오버라이드 가능한 변수
					"$container": "magic_data_control_1",
					// 오버라이드 가능한 변수
					"$target": "#spell_cooldown",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "magic_data_control_1",
							// 계산식/참조 값
							"source_property_name": "(#spell_cooldown < 51)",
							// 결과가 들어갈 속성
							"target_property_name": "#visible"
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"magic_cast_cooldown": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 오버라이드 가능한 변수
		"$size": [ 21, 5 ],
		// 오버라이드 가능한 변수
		"$fill_ratio": 99.0,
		// 오버라이드 가능한 변수
		"$clip_direction": "left",
		// 오버라이드 가능한 변수
		"$background": "textures/ui/magic_menu/cooldown_empty",
		// 오버라이드 가능한 변수
		"$path": "textures/ui/magic_menu/cooldown_full",
		// 오버라이드 가능한 변수
		"$container": "magic_data_control_1",
		// 오버라이드 가능한 변수
		"$target": "#casting_duration",
		// 가로/세로 크기
		"size": "$size",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"render_full": {
					// 가로/세로 크기
					"size": "$size",
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/magic_menu/cooldown_complete"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"render@magic_hud.custom_render": {
					// 오버라이드 가능한 변수
					"$size": [ 21, 5 ],
					// 오버라이드 가능한 변수
					"$fill_ratio": 99.0,
					// 오버라이드 가능한 변수
					"$clip_direction": "left",
					// 오버라이드 가능한 변수
					"$background": "textures/ui/magic_menu/cooldown_empty",
					// 오버라이드 가능한 변수
					"$path": "textures/ui/magic_menu/cooldown_full",
					// 오버라이드 가능한 변수
					"$container": "magic_data_control_1",
					// 오버라이드 가능한 변수
					"$target": "#casting_duration",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "magic_data_control_1",
							// 계산식/참조 값
							"source_property_name": "(#casting_duration < 99)",
							// 결과가 들어갈 속성
							"target_property_name": "#visible"
						}
					]
				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 계산/조건 결과를 연결
				"binding_type": "view",
				// ?? ??
				"source_control_name": "magic_data_control_1",
				// 계산식/참조 값
				"source_property_name": "(#casting_duration > 0)",
				// 결과가 들어갈 속성
				"target_property_name": "#visible"
			}
		]
	},

	// ???/?? ??
	"magic_name": {
		// 오버라이드 가능한 변수
		"$update_id": "magic_name_update",
		// 기준점(어디에서 시작할지)
		"anchor_from": "center",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "center",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// 이미지 표시
		"type": "image",
		// 가로/세로 크기
		"size": [ "100%c + 24px", "100%c + 2px" ],
		// 사용할 이미지 경로
		"texture": "textures/ui/hud_tip_text_background",
		// ???
		"alpha": 0.5,
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 보여줄 글자
				"text": {
					// 글자 표시
					"type": "label",
					// 보여줄 글자
					"text": "#text",
					// ?? ??
					"text_alignment": "center",
					// ?? ?? ?
					"font_size": "normal",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "data_control_magic_menu_name",
							// 계산식/참조 값
							"source_property_name": "((#stored_text - $update_id)",
							// 결과가 들어갈 속성
							"target_property_name": "#text"
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"magic_panel_selected": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": [ 64, 24 ],
		// 기준점(어디에서 시작할지)
		"anchor_from": "center",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "center",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"magic_select_left@magic_hud.magic_select_left": {
					// 기준점에서 이동하는 거리
					"offset": [ -10, 0 ],
					// 가로/세로 크기
					"size": [ 14, 14 ],
					// ??? ??
					"clip_direction": "left",
					// 진행 비율(잘라내기)
					"clip_ratio": 0.5,
					// ?? ??
					"clip_pixelperfect": true
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"magic_select_right@magic_hud.magic_select_right": {
					// 기준점에서 이동하는 거리
					"offset": [ 10, 0 ],
					// 가로/세로 크기
					"size": [ 14, 14 ],
					// ??? ??
					"clip_direction": "right",
					// 진행 비율(잘라내기)
					"clip_ratio": 0.5,
					// ?? ??
					"clip_pixelperfect": true
				}
			},
			{
				// ???/?? ??
				"magic_menu":{
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/magic_menu/selected_magic",
					// 가로/세로 크기
					"size": [ 64, 24 ],
					// 기준점(어디에서 시작할지)
					"anchor_from": "center",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "center",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 1,
					// ???
					"alpha": 1,
					// 오버라이드 가능한 변수
					"$update_left": "magic_left",
					// 오버라이드 가능한 변수
					"$update_right": "magic_right",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "data_control_magic_menu_right",
							// 계산식/참조 값
							"source_property_name": "(#stored_text - $update_right)",
							// 결과가 들어갈 속성
							"target_property_name": "#left_data"
						},
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "data_control_magic_menu_left",
							// 계산식/참조 값
							"source_property_name": "(#stored_text - $update_left)",
							// 결과가 들어갈 속성
							"target_property_name": "#right_data"
						},
						{
						  // 계산/조건 결과를 연결
						  "binding_type": "view",
						  // 계산식/참조 값
						  "source_property_name": "(not((#left_data = 'textures/ui/blank') and (#right_data = 'textures/ui/blank')))",
						  // 결과가 들어갈 속성
						  "target_property_name": "#visible"
						}
					]
				}
			},
			{
				// ???/?? ??
				"magic_menu_single":{
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/magic_menu/select_magic_single",
					// 가로/세로 크기
					"size": [ 64, 24 ],
					// 기준점(어디에서 시작할지)
					"anchor_from": "center",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "center",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 1,
					// ???
					"alpha": 1,
					// 오버라이드 가능한 변수
					"$update_left": "magic_left",
					// 오버라이드 가능한 변수
					"$update_right": "magic_right",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "data_control_magic_menu_right",
							// 계산식/참조 값
							"source_property_name": "(#stored_text - $update_right)",
							// 결과가 들어갈 속성
							"target_property_name": "#left_data"
						},
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "data_control_magic_menu_left",
							// 계산식/참조 값
							"source_property_name": "(#stored_text - $update_left)",
							// 결과가 들어갈 속성
							"target_property_name": "#right_data"
						},
						{
						  // 계산/조건 결과를 연결
						  "binding_type": "view",
						  // 계산식/참조 값
						  "source_property_name": "((#left_data = 'textures/ui/blank') and (#right_data = 'textures/ui/blank'))",
						  // 결과가 들어갈 속성
						  "target_property_name": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"magic_select_main@magic_hud.magic_select_main": {}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"magic_cast_param@magic_hud.magic_cast_param": {}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"magic_cast_cooldown@magic_hud.magic_cast_cooldown": {
					// 기준점에서 이동하는 거리
					"offset": [ 0, -20 ]
				}
			}
		]
    },

	// ???/?? ??
	"blink_cycle": {
		// 투명도 변화
		"anim_type": "alpha",
		// 움직임 곡선
		"easing": "in_sine",
		// 다음 애니메이션으로 연결
		"next": "@magic_hud.blink_cycle_end",
		// 걸리는 시간(초)
		"duration": 0.7,
		// 시작 값
		"from": 1,
		// 끝 값
		"to": 0.4
	},

	// ???/?? ??
	"blink_cycle_end": {
		// 투명도 변화
		"anim_type": "alpha",
		// 움직임 곡선
		"easing": "in_sine",
		// 다음 애니메이션으로 연결
		"next": "@magic_hud.blink_cycle",
		// 걸리는 시간(초)
		"duration": 0.4,
		// 시작 값
		"from": 0.4,
		// 끝 값
		"to": 1
	},

	// ???/?? ??
	"magic_panel_select": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": [ 64, 24 ],
		// 기준점(어디에서 시작할지)
		"anchor_from": "center",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "center",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"magic_select_left@magic_hud.magic_select_left": {
					// 기준점에서 이동하는 거리
					"offset": [ -22, 0 ],
					// 가로/세로 크기
					"size": [ 14, 14 ]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"magic_select_right@magic_hud.magic_select_right": {
					// 기준점에서 이동하는 거리
					"offset": [ 22, 0 ],
					// 가로/세로 크기
					"size": [ 14, 14 ]
				}
			},
			{
				// ???/?? ??
				"magic_menu":{
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/magic_menu/select_magic",
					// 가로/세로 크기
					"size": [ 64, 24 ],
					// 기준점(어디에서 시작할지)
					"anchor_from": "center",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "center",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 1,
					// ???
					"alpha": 1,
					// 오버라이드 가능한 변수
					"$update_left": "magic_left",
					// 오버라이드 가능한 변수
					"$update_right": "magic_right",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "data_control_magic_menu_right",
							// 계산식/참조 값
							"source_property_name": "(#stored_text - $update_right)",
							// 결과가 들어갈 속성
							"target_property_name": "#left_data"
						},
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "data_control_magic_menu_left",
							// 계산식/참조 값
							"source_property_name": "(#stored_text - $update_left)",
							// 결과가 들어갈 속성
							"target_property_name": "#right_data"
						},
						{
						  // 계산/조건 결과를 연결
						  "binding_type": "view",
						  // 계산식/참조 값
						  "source_property_name": "(not((#left_data = 'textures/ui/blank') and (#right_data = 'textures/ui/blank')))",
						  // 결과가 들어갈 속성
						  "target_property_name": "#visible"
						}
					]
				}
			},
			{
				// ???/?? ??
				"magic_menu_single":{
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/magic_menu/select_magic_single",
					// 가로/세로 크기
					"size": [ 64, 24 ],
					// 기준점(어디에서 시작할지)
					"anchor_from": "center",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "center",
					// 겹치는 순서(숫자 클수록 위)
					"layer": 1,
					// ???
					"alpha": 1,
					// 오버라이드 가능한 변수
					"$update_left": "magic_left",
					// 오버라이드 가능한 변수
					"$update_right": "magic_right",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "data_control_magic_menu_right",
							// 계산식/참조 값
							"source_property_name": "(#stored_text - $update_right)",
							// 결과가 들어갈 속성
							"target_property_name": "#left_data"
						},
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "data_control_magic_menu_left",
							// 계산식/참조 값
							"source_property_name": "(#stored_text - $update_left)",
							// 결과가 들어갈 속성
							"target_property_name": "#right_data"
						},
						{
						  // 계산/조건 결과를 연결
						  "binding_type": "view",
						  // 계산식/참조 값
						  "source_property_name": "((#left_data = 'textures/ui/blank') and (#right_data = 'textures/ui/blank'))",
						  // 결과가 들어갈 속성
						  "target_property_name": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"magic_select_main@magic_hud.magic_select_main": {}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"magic_cast_param@magic_hud.magic_cast_param": {}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"magic_cast_cooldown@magic_hud.magic_cast_cooldown": {
					// 기준점에서 이동하는 거리
					"offset": [ 0, -20 ]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"magic_name@magic_hud.magic_name": {
					// 기준점에서 이동하는 거리
					"offset": [ 0, -22 ]
				}
			}
		]
    },

	// ???/?? ??
	"magic_panel_none": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": [ 64, 24 ],
		// 기준점(어디에서 시작할지)
		"anchor_from": "center",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "center",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1
    },

	// ???/?? ??
	"magic_panel": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": [ 64, 24 ],
		// 기준점(어디에서 시작할지)
		"anchor_from": "center",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "center",
		// 겹치는 순서(숫자 클수록 위)
		"layer": 1,
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"magic_panel_none@magic_hud.magic_panel_none": {	
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "magic_data_control_1",
							// 계산식/참조 값
							"source_property_name": "(#spell_select = 0)",
							// 결과가 들어갈 속성
							"target_property_name": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"magic_panel_select@magic_hud.magic_panel_select": {
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "magic_data_control_1",
							// 계산식/참조 값
							"source_property_name": "(#spell_select = 2)",
							// 결과가 들어갈 속성
							"target_property_name": "#visible"
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"magic_panel_selected@magic_hud.magic_panel_selected": {
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "magic_data_control_1",
							// 계산식/참조 값
							"source_property_name": "(#spell_select = 1)",
							// 결과가 들어갈 속성
							"target_property_name": "#visible"
						}
					]
				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 계산/조건 결과를 연결
				"binding_type": "view",
				// ?? ??
				"source_control_name": "magic_data_control_1",
				// 계산식/참조 값
				"source_property_name": "(#spell_wheel = 99)",
				// 결과가 들어갈 속성
				"target_property_name": "#visible"
			}
		]
    },

	// 다른 템플릿을 가져와서 확장(상속)
	"soul_panel@magic_hud.custom_render": {
		// 기준점(어디에서 시작할지)
		"anchor_from": "center",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "center",
		// 오버라이드 가능한 변수
		"$size": [ 16, 16 ],
		// 오버라이드 가능한 변수
		"$fill_ratio": 99.0,
		// 오버라이드 가능한 변수
		"$clip_direction": "down",
		// 오버라이드 가능한 변수
		"$background": "textures/ui/soul/soul_empty",
		// 오버라이드 가능한 변수
		"$path": "textures/ui/soul/soul_full",
		// 오버라이드 가능한 변수
		"$container": "magic_data_control_1",
		// 오버라이드 가능한 변수
		"$target": "#soul_capacity"
	},

	// ???/?? ??
	"spell_render": {
		// 이미지 표시
		"type": "image",
		// 가로/세로 크기
		"size": [ "18.75%", "18.75%" ],
		// 기준점(어디에서 시작할지)
		"anchor_from": "center",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "center",
		// 사용할 이미지 경로
		"texture": "textures/ui/scroll_frame_wheel",
		// 오버라이드 가능한 변수
		"$source_index": "spell_render_0",
		// 오버라이드 가능한 변수
		"$update_string": "spell_render_0_update",
		// ???
		"alpha": 0.6,
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"background": {
					// 이미지 표시
					"type": "image",
					// 기준점(어디에서 시작할지)
					"anchor_from": "center",
					// 사용할 이미지 경로
					"texture": "#texture",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "center",
					// 가로/세로 크기
					"size": [ "66.667%", "66.667%" ],
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "$source_index",
							// 계산식/참조 값
							"source_property_name": "(#stored_text - $update_string)",
							// 결과가 들어갈 속성
							"target_property_name": "#texture"
						}
					]
				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 계산/조건 결과를 연결
				"binding_type": "view",
				// ?? ??
				"source_control_name": "$source_index",
				// 계산식/참조 값
				"source_property_name": "(not(((#stored_text - $update_string) = 'disable') or ((#stored_text - $update_string) = '')))",
				// 결과가 들어갈 속성
				"target_property_name": "#visible"
			}
		]
	},

	// ???/?? ??
	"spell_slot_render": {
		// 이미지 표시
		"type": "image",
		// 사용할 이미지 경로
		"texture": "#texture",
        // ??? ?? ?
        "allow_debug_missing_texture": false,
		// 기준점(어디에서 시작할지)
		"anchor_from": "center",
		// 붙일 위치(어디에 놓을지)
		"anchor_to": "center",
		// 가로/세로 크기
		"size": [ "15%", "100%x" ],
		// 겹치는 순서(숫자 클수록 위)
		"layer": 2,
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"background": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "textures/ui/spell_wheel/change_slot_wheel",
					// 기준점(어디에서 시작할지)
					"anchor_from": "center",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "center",
					// ???
					"alpha": 0.9,
					// 가로/세로 크기
					"size": [ "200%", "200%" ],
					// 이 안에 들어가는 부품 목록
					"controls": [
						{
							// ???/?? ??
							"label": {
								// 이미지 표시
								"type": "image",
								// 가로/세로 크기
								"size": [ "100%c + 24px", "100%c + 2px" ],
								// 사용할 이미지 경로
								"texture": "textures/ui/hud_tip_text_background",
								// 기준점(어디에서 시작할지)
								"anchor_from": "bottom_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "top_middle",
								// 기준점에서 이동하는 거리
								"offset": [ 0, 8 ],
								// ???
								"alpha": 0.5,
								// 이 안에 들어가는 부품 목록
								"controls": [
									{
										// 보여줄 글자
										"text": {
											// 글자 표시
											"type": "label",
											// 보여줄 글자
											"text": "#text",
											// 게임 값과 연결하는 규칙 목록
											"bindings": [
												{
													// 계산/조건 결과를 연결
													"binding_type": "view",
													// ?? ??
													"source_control_name": "spell_name_update_data",
													// 계산식/참조 값
													"source_property_name": "(#stored_text - 'spell_name_update')",
													// 결과가 들어갈 속성
													"target_property_name": "#text"
												}
											]
										}
									}
								],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "spell_name_update_data",
										// 계산식/참조 값
										"source_property_name": "(not(#stored_text = 'spell_name_update'))",
										// 결과가 들어갈 속성
										"target_property_name": "#visible"
									}
								]
							}
						}
					]
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"spell_0@magic_hud.spell_render": {
					// 기준점에서 이동하는 거리
					"offset": ["0%","-75%"],
					// 오버라이드 가능한 변수
					"$source_index": "spell_render_0",
					// 오버라이드 가능한 변수
					"$update_string": "spell_render_0_update"

				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"spell_1@magic_hud.spell_render": {
					// 기준점에서 이동하는 거리
					"offset": ["47%","-56%"],
					// 오버라이드 가능한 변수
					"$source_index": "spell_render_1",
					// 오버라이드 가능한 변수
					"$update_string": "spell_render_1_update"

				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"spell_2@magic_hud.spell_render": {
					// 기준점에서 이동하는 거리
					"offset": ["73%","-12%"],
					// 오버라이드 가능한 변수
					"$source_index": "spell_render_2",
					// 오버라이드 가능한 변수
					"$update_string": "spell_render_2_update"

				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"spell_3@magic_hud.spell_render": {
					// 기준점에서 이동하는 거리
					"offset": ["64%","36%"],
					// 오버라이드 가능한 변수
					"$source_index": "spell_render_3",
					// 오버라이드 가능한 변수
					"$update_string": "spell_render_3_update"

				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"spell_4@magic_hud.spell_render": {
					// 기준점에서 이동하는 거리
					"offset": ["25%","70%"],
					// 오버라이드 가능한 변수
					"$source_index": "spell_render_4",
					// 오버라이드 가능한 변수
					"$update_string": "spell_render_4_update"

				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"spell_5@magic_hud.spell_render": {
					// 기준점에서 이동하는 거리
					"offset": ["-25%","70%"],
					// 오버라이드 가능한 변수
					"$source_index": "spell_render_5",
					// 오버라이드 가능한 변수
					"$update_string": "spell_render_5_update"

				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"spell_6@magic_hud.spell_render": {
					// 기준점에서 이동하는 거리
					"offset": ["-64%","36%"],
					// 오버라이드 가능한 변수
					"$source_index": "spell_render_6",
					// 오버라이드 가능한 변수
					"$update_string": "spell_render_6_update"

				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"spell_7@magic_hud.spell_render": {
					// 기준점에서 이동하는 거리
					"offset": ["-73%","-12%"],
					// 오버라이드 가능한 변수
					"$source_index": "spell_render_7",
					// 오버라이드 가능한 변수
					"$update_string": "spell_render_7_update"

				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"spell_8@magic_hud.spell_render": {
					// 기준점에서 이동하는 거리
					"offset": ["-47%","-56%"],
					// 오버라이드 가능한 변수
					"$source_index": "spell_render_8",
					// 오버라이드 가능한 변수
					"$update_string": "spell_render_8_update"

				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 계산/조건 결과를 연결
				"binding_type": "view",
				// ?? ??
				"source_control_name": "magic_data_control_1",
				// 계산식/참조 값
				"source_property_name": "('textures/ui/spell_wheel/wand_direction_' + #spell_wheel)",
				// 결과가 들어갈 속성
				"target_property_name": "#texture"
			},
			{
				// 계산/조건 결과를 연결
				"binding_type": "view",
				// ?? ??
				"source_control_name": "magic_data_control_1",
				// 계산식/참조 값
				"source_property_name": "((#spell_wheel < 99) and (not(#stored_text = '')))",
				// 결과가 들어갈 속성
				"target_property_name": "#visible"
			}
		]
	},

	// ???/?? ??
	"anim_effect_start": {
		// 투명도 변화
		"anim_type": "alpha",
		// 움직임 곡선
		"easing": "in_sine",
		// 다음 애니메이션으로 연결
		"next": "@magic_hud.anim_effect_end",
		// 걸리는 시간(초)
		"duration": 0.25,
		// 시작 값
		"from": 1,
		// 끝 값
		"to": 0.2
	},

	// ???/?? ??
	"anim_effect_end": {
		// 투명도 변화
		"anim_type": "alpha",
		// 움직임 곡선
		"easing": "in_sine",
		// 다음 애니메이션으로 연결
		"next": "@magic_hud.anim_effect_start",
		// 걸리는 시간(초)
		"duration": 0.25,
		// 시작 값
		"from": 0.2,
		// 끝 값
		"to": 1
	},

	// ???/?? ??
	"effect_ui_blank": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": [ "19px", "19px" ],
		// 오버라이드 가능한 변수
		"$effect_name|default": "blank",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 계산/조건 결과를 연결
				"binding_type": "view",
				// ?? ??
				"source_control_name": "custom_effect_data",
				// 계산식/참조 값
				"source_property_name": "(not((#stored_text - $effect_name) = #stored_text))",
				// 결과가 들어갈 속성
				"target_property_name": "#visible"
			}
		]
	},

	// ???/?? ??
	"effect_ui_template": {
		// 이미지 표시
		"type": "image",
		// 가로/세로 크기
		"size": [ "19px", "19px" ],
		// 사용할 이미지 경로
		"texture": "textures/ui/hud_mob_effect_background",
		// 오버라이드 가능한 변수
		"$effect_texture|default": "textures/ui/blank",
		// 오버라이드 가능한 변수
		"$effect_name|default": "blank",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"effect_image": {
					// 이미지 표시
					"type": "image",
					// 가로/세로 크기
					"size": [ "18px", "18px" ],
					// 사용할 이미지 경로
					"texture": "$effect_texture",
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "custom_effect_data",
							// 계산식/참조 값
							"source_property_name": "((#stored_text - ($effect_name + '_low')) = #stored_text)",
							// 결과가 들어갈 속성
							"target_property_name": "#visible"
						}
					]
				}
			},
			{
				// ???/?? ??
				"effect_image_low": {
					// 이미지 표시
					"type": "image",
					// 가로/세로 크기
					"size": [ "18px", "18px" ],
					// 사용할 이미지 경로
					"texture": "$effect_texture",
					// ???
					"alpha": "@magic_hud.anim_effect_start"
				}
			}
		],
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 계산/조건 결과를 연결
				"binding_type": "view",
				// ?? ??
				"source_control_name": "custom_effect_data",
				// 계산식/참조 값
				"source_property_name": "(not((#stored_text - $effect_name) = #stored_text))",
				// 결과가 들어갈 속성
				"target_property_name": "#visible"
			}
		]
	},

	// ???/?? ??
	"custom_effect_renderer": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 쌓는 방향(가로/세로)
		"orientation": "vertical",
		// 가로/세로 크기
		"size": [ "fill", "fill" ],
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"blank_0@magic_hud.effect_ui_blank": {
					// 오버라이드 가능한 변수
					"$effect_texture": "textures/ui/effect/alternate_damage",
					// 오버라이드 가능한 변수
					"$effect_name": "blank_0"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"blank_1@magic_hud.effect_ui_blank": {
					// 오버라이드 가능한 변수
					"$effect_texture": "textures/ui/effect/alternate_damage",
					// 오버라이드 가능한 변수
					"$effect_name": "blank_1"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"blank_2@magic_hud.effect_ui_blank": {
					// 오버라이드 가능한 변수
					"$effect_texture": "textures/ui/effect/alternate_damage",
					// 오버라이드 가능한 변수
					"$effect_name": "blank_2"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"blank_3@magic_hud.effect_ui_blank": {
					// 오버라이드 가능한 변수
					"$effect_texture": "textures/ui/effect/alternate_damage",
					// 오버라이드 가능한 변수
					"$effect_name": "blank_3"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"blank_4@magic_hud.effect_ui_blank": {
					// 오버라이드 가능한 변수
					"$effect_texture": "textures/ui/effect/alternate_damage",
					// 오버라이드 가능한 변수
					"$effect_name": "blank_4"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"blank_5@magic_hud.effect_ui_blank": {
					// 오버라이드 가능한 변수
					"$effect_texture": "textures/ui/effect/alternate_damage",
					// 오버라이드 가능한 변수
					"$effect_name": "blank_5"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"blank_6@magic_hud.effect_ui_blank": {
					// 오버라이드 가능한 변수
					"$effect_texture": "textures/ui/effect/alternate_damage",
					// 오버라이드 가능한 변수
					"$effect_name": "blank_6"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"blank_7@magic_hud.effect_ui_blank": {
					// 오버라이드 가능한 변수
					"$effect_texture": "textures/ui/effect/alternate_damage",
					// 오버라이드 가능한 변수
					"$effect_name": "blank_7"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"effect_0@magic_hud.effect_ui_template": {
					// 오버라이드 가능한 변수
					"$effect_texture": "textures/ui/effect/alternate_damage",
					// 오버라이드 가능한 변수
					"$effect_name": "alternate_damage"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"effect_1@magic_hud.effect_ui_template": {
					// 오버라이드 가능한 변수
					"$effect_texture": "textures/ui/effect/bubble",
					// 오버라이드 가능한 변수
					"$effect_name": "bubble"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"effect_2@magic_hud.effect_ui_template": {
					// 오버라이드 가능한 변수
					"$effect_texture": "textures/ui/effect/floating",
					// 오버라이드 가능한 변수
					"$effect_name": "floating"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"effect_3@magic_hud.effect_ui_template": {
					// 오버라이드 가능한 변수
					"$effect_texture": "textures/ui/effect/freeze",
					// 오버라이드 가능한 변수
					"$effect_name": "freeze"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"effect_4@magic_hud.effect_ui_template": {
					// 오버라이드 가능한 변수
					"$effect_texture": "textures/ui/effect/heals",
					// 오버라이드 가능한 변수
					"$effect_name": "heals"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"effect_5@magic_hud.effect_ui_template": {
					// 오버라이드 가능한 변수
					"$effect_texture": "textures/ui/effect/magic_lasso",
					// 오버라이드 가능한 변수
					"$effect_name": "magic_lasso"
				}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"effect_6@magic_hud.effect_ui_template": {
					// 오버라이드 가능한 변수
					"$effect_texture": "textures/ui/effect/magnetism",
					// 오버라이드 가능한 변수
					"$effect_name": "magnetism"
				}
			}
		]
	},

	// ???/?? ??
	"mob_effects_renderer": {
		// ?? ?? ??
		"modifications": [
			{
				// ?? ?? ??
				"array_name": "controls",
				// ?? ??
				"operation": "insert_front",
				// ??? ?
				"value": [
					{
						// 다른 템플릿을 가져와서 확장(상속)
						"custom_effect_renderer@magic_hud.custom_effect_renderer": {
							// 기준점에서 이동하는 거리
							"offset": [ "-21px", "-8px" ],
							// 기준점(어디에서 시작할지)
							"anchor_from": "top_right",
							// 붙일 위치(어디에 놓을지)
							"anchor_to": "top_right"
						}
					}
				]
			}
		]
	},

	// ???/?? ??
	"fill": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 가로/세로 크기
		"size": [ 14, 14 ]
	},

	// ???/?? ??
	"stack_spell_fill": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 쌓는 방향(가로/세로)
		"orientation": "horizontal",

		// 목록 이름
		"collection_name": "spell_fill",
		// 목록 아이템을 자동으로 생성
		"factory": {
			// ?? ??
			"name": "bar_factory",
			// ??? ???
			"control_name": "magic_hud.fill"
		},
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{
				// 계산/조건 결과를 연결
				"binding_type": "view",
				// ?? ??
				"source_control_name": "data_stack_spell",
				// 계산식/참조 값
				"source_property_name": "#amount",
				// 결과가 들어갈 속성
				"target_property_name": "#collection_length"
			}
		]
	},

	// ???/?? ??
	"stack_spell_render": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
		// 오버라이드 가능한 변수
		"$size": [ 140, 14 ],
		// 가로/세로 크기
		"size": "$size",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// ???/?? ??
				"cooldown": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "#texture",
					// 가로/세로 크기
					"size": "$size",
					// ???? ?? ??
					"uv": [ 28, 0 ],
					// ???? ??
					"uv_size": [ 14, 14 ],
					// 이미지 반복 여부
					"tiled": true,
					// ??? ??
					"clip_direction": "left",
					// ?? ??
					"clip_pixelperfect": false,
					// 겹치는 순서(숫자 클수록 위)
					"layer": 1,
					// 오버라이드 가능한 변수
					"$divisor": 10.0,
					// 오버라이드 가능한 변수
					"$divisor2": 99.0,
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "data_stack_spell",
							// 계산식/참조 값
							"source_property_name": "(#cooldown / $divisor2)",
							// 결과가 들어갈 속성
							"target_property_name": "#clip_ratio"
						},
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "data_stack_spell_texture",
							// 계산식/참조 값
							"source_property_name": "(#stored_text - 'stack_spell_texture')",
							// 결과가 들어갈 속성
							"target_property_name": "#texture"
						}
					]
				}
			},
			{
				// ???/?? ??
				"active": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "#texture",
					// 가로/세로 크기
					"size": "$size",
					// ???? ?? ??
					"uv": [ 0, 0 ],
					// ???? ??
					"uv_size": [ 14, 14 ],
					// 이미지 반복 여부
					"tiled": true,
					// ??? ??
					"clip_direction": "left",
					// ?? ??
					"clip_pixelperfect": false,
					// 오버라이드 가능한 변수
					"$divisor": 10.0,
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "data_stack_spell",
							// 계산식/참조 값
							"source_property_name": "(#active / $divisor)",
							// 결과가 들어갈 속성
							"target_property_name": "#clip_ratio"
						},
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "data_stack_spell_texture",
							// 계산식/참조 값
							"source_property_name": "(#stored_text - 'stack_spell_texture')",
							// 결과가 들어갈 속성
							"target_property_name": "#texture"
						}
					]
				}
			},
			{
				// ???/?? ??
				"bg": {
					// 이미지 표시
					"type": "image",
					// 사용할 이미지 경로
					"texture": "#texture",
					// 가로/세로 크기
					"size": "$size",
					// ???? ?? ??
					"uv": [ 14, 0 ],
					// ???? ??
					"uv_size": [ 14, 14 ],
					// 이미지 반복 여부
					"tiled": true,
					// ??? ??
					"clip_direction": "left",
					// ?? ??
					"clip_pixelperfect": false,
					// 겹치는 순서(숫자 클수록 위)
					"layer": -1,
					// 오버라이드 가능한 변수
					"$divisor": 10.0,
					// 게임 값과 연결하는 규칙 목록
					"bindings": [
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "data_stack_spell",
							// 계산식/참조 값
							"source_property_name": "(#amount / $divisor)",
							// 결과가 들어갈 속성
							"target_property_name": "#clip_ratio"
						},
						{
							// 계산/조건 결과를 연결
							"binding_type": "view",
							// ?? ??
							"source_control_name": "data_stack_spell_texture",
							// 계산식/참조 값
							"source_property_name": "(#stored_text - 'stack_spell_texture')",
							// 결과가 들어갈 속성
							"target_property_name": "#texture"
						}
					]
				}
			}
		]
	},

	// ???/?? ??
	"stack_spell_panel": {
		// 줄맞춤 컨테이너: 가로/세로로 자동 배치
		"type": "stack_panel",
		// 쌓는 방향(가로/세로)
		"orientation": "horizontal",
		// 이 안에 들어가는 부품 목록
		"controls": [
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"stack_spell_fill@magic_hud.stack_spell_fill": {}
			},
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"stack_spell_render@magic_hud.stack_spell_render": {
					// 기준점에서 이동하는 거리
					"offset": [ "100%", "100%"]
				}
			}
			// ,
			// {
			// 	"test":{
			// 		"type": "label",
			// 		"text": "#text",
			// 		"bindings": [
			// 			{
			// 				"binding_type": "view",
			// 				"source_control_name": "data_stack_spell_texture",
			// 				"source_property_name": "(#stored_text - ' stack_spell_texture')",
			// 				"target_property_name": "#text"
			// 			}
			// 		]
			// 	}
			// }
		]
	},

    // ???/?? ??
    "root_panel": {
		// 패널: 다른 부품을 담는 바닥판
		"type": "panel",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "data_control_magic": {
					// 오버라이드 가능한 변수
					"$update_stack_spell": "stack_spell_panel",
					// 오버라이드 가능한 변수
					"$update_stack_spell_texture": "stack_spell_texture",
                    // 오버라이드 가능한 변수
                    "$update_main": "magic_main",
                    // 오버라이드 가능한 변수
                    "$update_left": "magic_left",
                    // 오버라이드 가능한 변수
                    "$update_right": "magic_right",
                    // 오버라이드 가능한 변수
                    "$update_magic_name": "magic_name_update",
                    // 오버라이드 가능한 변수
                    "$update_spell_slot_0": "spell_render_0_update",
                    // 오버라이드 가능한 변수
                    "$update_spell_slot_1": "spell_render_1_update",
                    // 오버라이드 가능한 변수
                    "$update_spell_slot_2": "spell_render_2_update",
                    // 오버라이드 가능한 변수
                    "$update_spell_slot_3": "spell_render_3_update",
                    // 오버라이드 가능한 변수
                    "$update_spell_slot_4": "spell_render_4_update",
                    // 오버라이드 가능한 변수
                    "$update_spell_slot_5": "spell_render_5_update",
                    // 오버라이드 가능한 변수
                    "$update_spell_slot_6": "spell_render_6_update",
                    // 오버라이드 가능한 변수
                    "$update_spell_slot_7": "spell_render_7_update",
                    // 오버라이드 가능한 변수
                    "$update_spell_slot_8": "spell_render_8_update",
                    // 오버라이드 가능한 변수
                    "$update_spell_name": "spell_name_update",
                    // 오버라이드 가능한 변수
                    "$custom_effect": "custom_effect_update",
                    // 오버라이드 가능한 변수
                    "$update_magic_ui": "magic_ui_update",
                    // 오버라이드 가능한 변수
                    "$update_magic_ui_soul_text": "magic_ui_soul_text_update",
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [ 0, 0 ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // ???/?? ??
                            "data_magic_ui_soul_text": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_magic_ui_soul_text) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "data_stack_spell_texture": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_stack_spell_texture) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
						{
							//scriptevent ui_sub_load:stack_spell_panel a909996789stack_spell_panel
							//[0-9 amount][0-10 active][0-99 cooldown][6789 kosong]
							"data_stack_spell": {
								// 패널: 다른 부품을 담는 바닥판
								"type": "panel",
								// 가로/세로 크기
								"size": [ 0, 0 ],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 가져올 값 이름
										"binding_name": "#hud_title_text_string"
									},
									{
										// 가져올 값 이름
										"binding_name": "#hud_title_text_string",
										// 가져온 값을 다른 속성으로 연결
										"binding_name_override": "#stored_text",
										// ?? ???
										"binding_condition": "visibility_changed"
									},
									{
									  // 계산/조건 결과를 연결
									  "binding_type": "view",
									  // 계산식/참조 값
									  "source_property_name": "(#stored_text - 'a')",
									  // 결과가 들어갈 속성
									  "target_property_name": "#data"
									},
									{
									  // 계산/조건 결과를 연결
									  "binding_type": "view",
									  // 계산식/참조 값
									  "source_property_name": "(#data/100000000)",
									  // 결과가 들어갈 속성
									  "target_property_name": "#amount"
									},
									{
									  // 계산/조건 결과를 연결
									  "binding_type": "view",
									  // 계산식/참조 값
									  "source_property_name": "(#data/1000000) - (#amount * 100)",
									  // 결과가 들어갈 속성
									  "target_property_name": "#active"
									},
									{
									  // 계산/조건 결과를 연결
									  "binding_type": "view",
									  // 계산식/참조 값
									  "source_property_name": "(#data/10000) - (#amount * 10000) - (#active * 100)",
									  // 결과가 들어갈 속성
									  "target_property_name": "#cooldown"
									},
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// 계산식/참조 값
										"source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_stack_spell) = #hud_title_text_string))",
										// 결과가 들어갈 속성
										"target_property_name": "#visible"
									}
								]
							}
						},
                        {
                            // ???/?? ??
                            "magic_data_control_1": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#show_survival_ui",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#survival_ui"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "(#stored_text - ('%.1s' * #stored_text))",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#data"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "('%.1s' * #stored_text)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#header"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "(#data/100000000)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#spell_select"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "(#data / 1000000) - (#spell_select * 100)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#spell_cooldown"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "(#data / 10000) - (#spell_cooldown * 100) - (#spell_select * 10000)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#spell_wheel"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "(#data / 100) - (#spell_wheel * 100) - (#spell_cooldown * 10000) - (#spell_select * 1000000)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#casting_duration"
                                    },
                                    {
                                      // 계산/조건 결과를 연결
                                      "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "(#data / 1) - (#casting_duration * 100) - (#spell_wheel * 10000) - (#spell_cooldown * 1000000) - (#spell_select * 100000000)",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#soul_capacity"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_magic_ui) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "custom_effect_data": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $custom_effect) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "spell_name_update_data": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_spell_name) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "spell_render_0": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_spell_slot_0) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "spell_render_1": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_spell_slot_1) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "spell_render_2": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_spell_slot_2) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "spell_render_3": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_spell_slot_3) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "spell_render_4": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_spell_slot_4) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "spell_render_5": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_spell_slot_5) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "spell_render_6": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_spell_slot_6) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "spell_render_7": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_spell_slot_7) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "spell_render_8": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_spell_slot_8) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "data_control_magic_menu_name": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_magic_name) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "data_control_magic_menu_main": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_main) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "data_control_magic_menu_left": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_left) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "data_control_magic_menu_right": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 0, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hud_title_text_string",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#stored_text",
                                        // ?? ???
                                        "binding_condition": "visibility_changed"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#hud_title_text_string = #stored_text) and not ((#hud_title_text_string - $update_right) = #hud_title_text_string))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        }
                    ]
                }
            },
			{
				// 다른 템플릿을 가져와서 확장(상속)
				"stack_spell_panel@magic_hud.stack_spell_panel": {
					// 기준점에서 이동하는 거리
					"offset": [ 0, "10%" ],
					// 기준점(어디에서 시작할지)
					"anchor_from": "center",
					// 붙일 위치(어디에 놓을지)
					"anchor_to": "top_middle"
				}
			},
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "magic_panel@magic_hud.magic_panel": {
                    // 오버라이드 가능한 변수
                    "$offset": [ -165, 0 ],
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "bottom_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "bottom_middle",
                    // 조건에 따라 변수 값을 바꾸기
                    "variables": [
                        {
                            // 이 조건이 맞으면 적용
                            "requires": "$pocket_edition",
                            // 오버라이드 가능한 변수
                            "$offset": [ 0, -56 ]
                        }
                    ],
                    // 기준점에서 이동하는 거리
                    "offset": "$offset"
                }
            },
            {
                // ???/?? ??
                "soul": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 오버라이드 가능한 변수
                    "$offset": [ 98, -28 ],
                    // 가로/세로 크기
                    "size": [ 16, 16 ],
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "bottom_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "bottom_middle",
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // ???/?? ??
                            "denied": {
                                // 이미지 표시
                                "type": "image",
                                // 사용할 이미지 경로
                                "texture": "textures/ui/soul/soul_denied",
                                // 가로/세로 크기
                                "size": [ 16, 16 ],
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": 2,
                                // ???
                                "alpha": "@magic_hud.blink_cycle",
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // ?? ??
                                        "source_control_name": "magic_data_control_1",
                                        // 계산식/참조 값
                                        "source_property_name": "(#header = 'b')",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "soul_panel@magic_hud.soul_panel": {}
                        },
						{
							// ???/?? ??
							"soul_text_denaid": {
								// 글자 표시
								"type": "label",
								// 보여줄 글자
								"text": "#text",
                                // 가로/세로 크기
                                "size": [ 128, "default" ],
								// 기준점에서 이동하는 거리
								"offset": [ 2, 0 ],
								// 기준점(어디에서 시작할지)
								"anchor_from": "bottom_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "left_middle",
								// ?? (R,G,B,A)
								"color": [ 1.0, 0.1, 0.42 ],
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": 2,
                                // ???
                                "alpha": "@magic_hud.blink_cycle",
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // ?? ??
                                        "source_control_name": "data_magic_ui_soul_text",
                                        // 계산식/참조 값
                                        "source_property_name": "(#stored_text - 'magic_ui_soul_text_update')",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#text"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // ?? ??
                                        "source_control_name": "magic_data_control_1",
                                        // 계산식/참조 값
                                        "source_property_name": "(#header = 'b')",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
							}
						},
						{
							// ???/?? ??
							"soul_text": {
								// 글자 표시
								"type": "label",
								// 보여줄 글자
								"text": "#text",
                                // 가로/세로 크기
                                "size": [ 128, "default" ],
								// 기준점에서 이동하는 거리
								"offset": [ 2, 0 ],
								// 기준점(어디에서 시작할지)
								"anchor_from": "bottom_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "left_middle",
								// ?? (R,G,B,A)
								"color": [ 0.43, 0.92, 0.92 ],
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_magic_ui_soul_text",
										// 계산식/참조 값
										"source_property_name": "(#stored_text - 'magic_ui_soul_text_update')",
										// 결과가 들어갈 속성
										"target_property_name": "#text"
									}
								]
							}
						},
						{
							// ???/?? ??
							"soul_text_0": {
								// 글자 표시
								"type": "label",
								// 보여줄 글자
								"text": "#text",
                                // 가로/세로 크기
                                "size": [ 128, "default" ],
								// 기준점에서 이동하는 거리
								"offset": [ 3, 0 ],
								// 기준점(어디에서 시작할지)
								"anchor_from": "bottom_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "left_middle",
								// ?? (R,G,B,A)
								"color": [ 0.0, 0.0, 0.0 ],
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": -1,
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_magic_ui_soul_text",
										// 계산식/참조 값
										"source_property_name": "(#stored_text - 'magic_ui_soul_text_update')",
										// 결과가 들어갈 속성
										"target_property_name": "#text"
									}
								]
							}
						},
						{
							// ???/?? ??
							"soul_text_1": {
								// 글자 표시
								"type": "label",
								// 보여줄 글자
								"text": "#text",
                                // 가로/세로 크기
                                "size": [ 128, "default" ],
								// 기준점에서 이동하는 거리
								"offset": [ 1, 0 ],
								// 기준점(어디에서 시작할지)
								"anchor_from": "bottom_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "left_middle",
								// ?? (R,G,B,A)
								"color": [ 0.0, 0.0, 0.0 ],
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": -1,
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_magic_ui_soul_text",
										// 계산식/참조 값
										"source_property_name": "(#stored_text - 'magic_ui_soul_text_update')",
										// 결과가 들어갈 속성
										"target_property_name": "#text"
									}
								]
							}
						},
						{
							// ???/?? ??
							"soul_text_2": {
								// 글자 표시
								"type": "label",
								// 보여줄 글자
								"text": "#text",
                                // 가로/세로 크기
                                "size": [ 128, "default" ],
								// 기준점에서 이동하는 거리
								"offset": [ 2, 1 ],
								// 기준점(어디에서 시작할지)
								"anchor_from": "bottom_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "left_middle",
								// ?? (R,G,B,A)
								"color": [ 0.0, 0.0, 0.0 ],
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": -1,
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_magic_ui_soul_text",
										// 계산식/참조 값
										"source_property_name": "(#stored_text - 'magic_ui_soul_text_update')",
										// 결과가 들어갈 속성
										"target_property_name": "#text"
									}
								]
							}
						},
						{
							// ???/?? ??
							"soul_text_3": {
								// 글자 표시
								"type": "label",
								// 보여줄 글자
								"text": "#text",
                                // 가로/세로 크기
                                "size": [ 128, "default" ],
								// 기준점에서 이동하는 거리
								"offset": [ 2, -1 ],
								// 기준점(어디에서 시작할지)
								"anchor_from": "bottom_middle",
								// 붙일 위치(어디에 놓을지)
								"anchor_to": "left_middle",
								// ?? (R,G,B,A)
								"color": [ 0.0, 0.0, 0.0 ],
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": -1,
								// 게임 값과 연결하는 규칙 목록
								"bindings": [
									{
										// 계산/조건 결과를 연결
										"binding_type": "view",
										// ?? ??
										"source_control_name": "data_magic_ui_soul_text",
										// 계산식/참조 값
										"source_property_name": "(#stored_text - 'magic_ui_soul_text_update')",
										// 결과가 들어갈 속성
										"target_property_name": "#text"
									}
								]
							}
						}
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                          // 가져올 값 이름
                          "binding_name": "#is_not_riding",
                          // 가져온 값을 다른 속성으로 연결
                          "binding_name_override": "#visible"
                        }
                    ],
                    // 조건에 따라 변수 값을 바꾸기
                    "variables": [
                        {
                            // 이 조건이 맞으면 적용
                            "requires": "$pocket_edition",
                            // 오버라이드 가능한 변수
                            "$offset": [ 110, -28 ]
                        }
                    ],
                    // 기준점에서 이동하는 거리
                    "offset": "$offset"
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "spell_slot_render@magic_hud.spell_slot_render": {}
            }
			// {
			// 	"testaaaaa": {
			// 		"type": "custom",
			// 		"layer": 4,
            //         "anchor_from": "center",
            //         "anchor_to": "center",
			// 		"renderer": "live_horse_renderer",
			// 		"$a": "-004294967295",
            //         "size": [ 64, 64 ],

			// 		"property_bag": {
			// 			"#entity_id": "$a"
			// 		}
			// 	}
			// }
        ]
    }
}

magic_learning_station_screen.json MagicWay UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: magic_learning_station_screen.json
// 분류: MagicWay UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "magic_learning_station",

  // ???/?? ??
  "transparent": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/blank"
  },

  // ???/?? ??
  "background_scroll": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/learning_station/background_scroll"
  },

  // ???/?? ??
  "background_scroll_gap": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/learning_station/background_scroll_gap"
  },

  // ???/?? ??
  "black_border": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/background_with_border",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // ???/?? ??
  "black_button_image": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/button_borderless_dark",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // ???/?? ??
  "locked_spell_image": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/coin_button_borderless",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // ???/?? ??
  "black_button_hover_image": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/button_border_dark",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // ???/?? ??
  "button_border_dark": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/black_border",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // ???/?? ??
  "button_border_light": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/focus_border_white",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // ???/?? ??
  "scroll_frame": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/scroll_frame",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // ???/?? ??
  "purple_border": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/purpleBorder",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // ???/?? ??
  "magic_learning_station_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 390, 208],
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "book_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/learning_station/book_background_small"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "scroll_craft_content@magic_learning_station.scroll_craft_content": {
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not((#form_text - 'scroll_craft') = #form_text))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      { "gamepad_cursor@common.gamepad_cursor_button": {} }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#title_text = 'magic_learning_station.menu')",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "magic_scroll_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 120, 145 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background_scroll@magic_learning_station.background_scroll": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background_scroll_gap@magic_learning_station.background_scroll_gap": {
          // 가로/세로 크기
          "size": [ 98, 2 ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, -30 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "background_scroll_gap@magic_learning_station.background_scroll_gap": {
          // 가로/세로 크기
          "size": [ 98, 2 ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, -80 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "desc_toggle_data",
              // 계산식/참조 값
              "source_property_name": "(not (#toggle_state))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "magic_scroll_list_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 210, 145 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "black_border@magic_learning_station.black_border": {}
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "scrolling_panel@common.scrolling_panel": {
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 오버라이드 가능한 변수
          "$show_background": false,
          // 가로/세로 크기
          "size": ["100% - 2px", "100% - 3px"],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 2 ],
          // 오버라이드 가능한 변수
          "$scrolling_content": "magic_learning_station.scroll_content",
          // 오버라이드 가능한 변수
          "$scroll_size": [ 1, "100% - 4px" ],
          // 오버라이드 가능한 변수
          "$scroll_bar_right_padding_size": [ 1, 0 ],
          // 오버라이드 가능한 변수
          "$scroll_bar_right_padding_size_touch": [ 2, 0 ]
        }
      }
    ]
  },

  // ???/?? ??
  "scroll_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": ["100% - 4px", "100%c + 1px"],
    // 기준점에서 이동하는 거리
    "offset": [2,0],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",

    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "magic_learning_station.scroll_list_button"
    },

    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
      }
    ]
  },

  // ???/?? ??
  "scroll_list_button": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": ["100%", 32],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button@common.button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.form_button_click",
          // 가로/세로 크기
          "size": ["100%", 32],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "default@magic_learning_station.button_border_dark": {
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "default@magic_learning_station.black_button_image": {
                      // 가로/세로 크기
                      "size": ["100%-2px", "100%-2px"]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "spell_frame@magic_learning_station.scroll_frame": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 3,
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ -4, 0 ],
                      // 가로/세로 크기
                      "size": [ 24, 24 ]
                    }
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hover@magic_learning_station.button_border_light": {
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "default@magic_learning_station.black_button_hover_image": {
                      // 가로/세로 크기
                      "size": ["100%-2px", "100%-2px"]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "spell_frame@magic_learning_station.scroll_frame": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 3,
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "right_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "right_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ -4, 0 ],
                      // 가로/세로 크기
                      "size": [ 24, 24 ],
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "hover@magic_learning_station.button_border_light": {
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 2,
                            // 가로/세로 크기
                            "size": [ 24, 24 ]
                          }
                        },
                        {
                          // 다른 템플릿을 가져와서 확장(상속)
                          "hover@magic_learning_station.button_border_light": {
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 3,
                            // 가로/세로 크기
                            "size": [ 16, 16 ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "spell_name": {
                // 글자 표시
                "type": "label",
                // 보여줄 글자
                "text": "#text",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 기준점에서 이동하는 거리
                "offset": [ 5, 0 ],
                // ?? ??
                "text_alignment": "left_middle",
                // 게임 값과 연결하는 규칙 목록
                "bindings":[
                  {
                    // 가져올 값 이름
                    "binding_name": "#form_button_texture",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#content_label",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#content_label - 'amw:spell')",
                    // 결과가 들어갈 속성
                    "target_property_name": "#text"
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 가져올 값 이름
              "binding_name": "#form_button_texture",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#content_label",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#content_label - 'amw:spell_locked') = #content_label)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "locked_spell@magic_learning_station.button_border_dark": {
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "default@magic_learning_station.locked_spell_image": {
                // 가로/세로 크기
                "size": ["100%-2px", "100%-2px"]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "spell_frame@magic_learning_station.button_border_dark": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 기준점(어디에서 시작할지)
                "anchor_from": "right_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "right_middle",
                // 기준점에서 이동하는 거리
                "offset": [ -4, 0 ],
                // 가로/세로 크기
                "size": [ 24, 24 ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "spell_frame@magic_learning_station.locked_spell_image": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 기준점(어디에서 시작할지)
                "anchor_from": "right_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "right_middle",
                // 기준점에서 이동하는 거리
                "offset": [ -5, 0 ],
                // 가로/세로 크기
                "size": [ 22, 22 ]
              }
            },
            {
              // ???/?? ??
              "spell_name": {
                // 글자 표시
                "type": "label",
                // 보여줄 글자
                "text": "#text",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // 기준점에서 이동하는 거리
                "offset": [ 5, 0 ],
                // ?? ??
                "text_alignment": "left_middle",
                // 게임 값과 연결하는 규칙 목록
                "bindings":[
                  {
                    // 가져올 값 이름
                    "binding_name": "#form_button_texture",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#content_label",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#content_label - 'amw:spell_locked')",
                    // 결과가 들어갈 속성
                    "target_property_name": "#text"
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 가져올 값 이름
              "binding_name": "#form_button_texture",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#content_label",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not((#content_label - 'amw:spell_locked') = #content_label))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "spell_image": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "#texture",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 6,
          // 가로/세로 크기
          "size": [ 16, 16 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 기준점에서 이동하는 거리
          "offset": [ -8, 0 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings":[
            {
              // 가져올 값 이름
              "binding_name": "#form_button_text",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 가져올 값 이름
              "binding_name": "#form_button_texture_file_system",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture_file_system",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#form_button_texture",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#content_label",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not((#content_label - 'amw:spell') = #content_label))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "magic_type_button": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size":  [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$button_image|default": "textures/ui/learning_station/fire_type_button",
    // 오버라이드 가능한 변수
    "$button_param|default": "fire_type",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button@common.button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.form_button_click",
          // 가로/세로 크기
          "size": [ 64, 20 ],
          // ?? ??
          "default_control": "default",
          // ?? ??
          "hover_control": "hover",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "default_image": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "$button_image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // ??? ??
                "clip_direction": "left",
                // 진행 비율(잘라내기)
                "clip_ratio": 0.35,
                // ?? ??
                "clip_pixelperfect": true,
                // 기준점에서 이동하는 거리
                "offset": [ 34, 0 ]
              }
            },
            {
              // ???/?? ??
              "hover": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "$button_image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 5,
                // ??? ??
                "clip_direction": "left",
                // 진행 비율(잘라내기)
                "clip_ratio": 0.15,
                // ?? ??
                "clip_pixelperfect": true,
                // 기준점에서 이동하는 거리
                "offset": [ 21, 0 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 보여줄 글자
                    "text": {
                      // 이미지 표시
                      "type": "image",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ -11, 2 ],
                      // 가로/세로 크기
                      "size": [ "100%c + 12px", "100%c + 5px" ],
                      // ???
                      "alpha": 0.7,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 8,
                      // 사용할 이미지 경로
                      "texture": "textures/ui/hud_tip_text_background",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "actionbar_message": {
                            // 글자 표시
                            "type": "label",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "center",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "center",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 31,
                            // 보여줄 글자
                            "text": "#text",
                            // ?? ??
                            "localize": false,
                            // 게임 값과 연결하는 규칙 목록
                            "bindings":[
                              {
                                // 가져올 값 이름
                                "binding_name": "#form_button_text",
                                // 가져온 값을 다른 속성으로 연결
                                "binding_name_override": "#text",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection",
                                // 목록 이름
                                "binding_collection_name": "form_buttons"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 가져올 값 이름
              "binding_name": "#form_button_texture",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#content_label",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#content_label - 'locked') = #content_label)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "picked": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ 64, 20 ],
          // 기준점에서 이동하는 거리
          "offset": [ 17, 0 ],
          // 사용할 이미지 경로
          "texture": "$button_image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 7,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#form_button_texture",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#content_label",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not((#content_label - 'locked') = #content_label))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#form_button_texture",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#content_label",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#content_label - $button_param) = #content_label))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "desc_toggle": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size":  [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$button_image|default": "textures/ui/learning_station/description_toggle_button",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "desc_toggle_data@common.toggle": {
          // 가로/세로 크기
          "size": [ 64, 20 ],
          // 오버라이드 가능한 변수
          "$toggle_name": "desc_toggle",
          // 입력 키/버튼과 동작 연결
          "button_mappings": [
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_select",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_select",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_ok",
              // 어떤 동작을 실행할지
              "to_button_id": "button.menu_ok",
              // 입력 시점(pressed 등)
              "mapping_type": "focused"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_alternate_tab_right",
              // 어떤 동작을 실행할지
              "to_button_id": "button.desc_toggle",
              // 입력 시점(pressed 등)
              "mapping_type": "global"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "unchecked": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "$button_image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // ??? ??
                "clip_direction": "right",
                // 진행 비율(잘라내기)
                "clip_ratio": 0.35,
                // ?? ??
                "clip_pixelperfect": true,
                // 기준점에서 이동하는 거리
                "offset": [ -34, 0 ]
              }
            },
            {
              // ???/?? ??
              "unchecked_hover": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "$button_image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 5,
                // ??? ??
                "clip_direction": "right",
                // 진행 비율(잘라내기)
                "clip_ratio": 0.15,
                // ?? ??
                "clip_pixelperfect": true,
                // 기준점에서 이동하는 거리
                "offset": [ -21, 0 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 보여줄 글자
                    "text": {
                      // 이미지 표시
                      "type": "image",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ 11, 2 ],
                      // 가로/세로 크기
                      "size": [ "100%c + 12px", "100%c + 5px" ],
                      // ???
                      "alpha": 0.7,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 8,
                      // 사용할 이미지 경로
                      "texture": "textures/ui/hud_tip_text_background",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "actionbar_message": {
                            // 글자 표시
                            "type": "label",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "center",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "center",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 31,
                            // 보여줄 글자
                            "text": "설명 확장",
                            // ?? ??
                            "localize": false
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "checked": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ 64, 20 ],
                // 기준점에서 이동하는 거리
                "offset": [ -17, 0 ],
                // 사용할 이미지 경로
                "texture": "$button_image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 7
              }
            },
            {
              // ???/?? ??
              "checked_hover": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ 64, 20 ],
                // 기준점에서 이동하는 거리
                "offset": [ -15, 0 ],
                // 사용할 이미지 경로
                "texture": "$button_image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 7,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 보여줄 글자
                    "text": {
                      // 이미지 표시
                      "type": "image",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ 11, 2 ],
                      // 가로/세로 크기
                      "size": [ "100%c + 12px", "100%c + 5px" ],
                      // ???
                      "alpha": 0.7,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 8,
                      // 사용할 이미지 경로
                      "texture": "textures/ui/hud_tip_text_background",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "actionbar_message": {
                            // 글자 표시
                            "type": "label",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "center",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "center",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 31,
                            // 보여줄 글자
                            "text": "설명 확장",
                            // ?? ??
                            "localize": false
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "close_button": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size":  [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$button_image|default": "textures/ui/learning_station/close_button",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button@common.button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.menu_exit",
          // 가로/세로 크기
          "size": [ 64, 20 ],
          // ?? ??
          "default_control": "default",
          // ?? ??
          "hover_control": "hover",
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "default": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "$button_image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // ??? ??
                "clip_direction": "right",
                // 진행 비율(잘라내기)
                "clip_ratio": 0.35,
                // ?? ??
                "clip_pixelperfect": true,
                // 기준점에서 이동하는 거리
                "offset": [ -34, 0 ]
              }
            },
            {
              // ???/?? ??
              "hover": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "$button_image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 5,
                // ??? ??
                "clip_direction": "right",
                // 진행 비율(잘라내기)
                "clip_ratio": 0.15,
                // ?? ??
                "clip_pixelperfect": true,
                // 기준점에서 이동하는 거리
                "offset": [ -21, 0 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 보여줄 글자
                    "text": {
                      // 이미지 표시
                      "type": "image",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_middle",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "top_middle",
                      // 기준점에서 이동하는 거리
                      "offset": [ 11, 2 ],
                      // 가로/세로 크기
                      "size": [ "100%c + 12px", "100%c + 5px" ],
                      // ???
                      "alpha": 0.7,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 8,
                      // 사용할 이미지 경로
                      "texture": "textures/ui/hud_tip_text_background",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        {
                          // ???/?? ??
                          "actionbar_message": {
                            // 글자 표시
                            "type": "label",
                            // 기준점(어디에서 시작할지)
                            "anchor_from": "center",
                            // 붙일 위치(어디에 놓을지)
                            "anchor_to": "center",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 31,
                            // 보여줄 글자
                            "text": "닫기",
                            // ?? ??
                            "localize": false
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  },

  // ???/?? ??
  "static_panel": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",

    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "magic_learning_station.static_panel_content"
    },

    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
      }
    ]
  },

  // ???/?? ??
  "description": {
    // 글자 표시
    "type": "label",
    // 보여줄 글자
    "text": "#text",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 가로/세로 크기
    "size": [ "100%", "default" ],
    // ?? ?? ??
    "font_scale_factor": 0.7,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#form_button_text",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      }
    ]
  },

  // ???/?? ??
  "static_panel_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "scroll_recipe": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "#text",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 기준점에서 이동하는 거리
          "offset": [ 108, 22 ],
          // ?? ?? ??
          "font_scale_factor": 0.7,
          // 가로/세로 크기
          "size": [ 110, 47 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#form_button_text",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#text",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 가져올 값 이름
              "binding_name": "#form_button_texture",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#content_label",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "desc_toggle_data",
              // 계산식/참조 값
              "source_property_name": "(not (#toggle_state))",
              // 결과가 들어갈 속성
              "target_property_name": "#toggle_visible"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "((#content_label = 'scroll_recipe') and #toggle_visible)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            },
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "scroll_description": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 기준점에서 이동하는 거리
          "offset": [ 108, -35 ],
          // 가로/세로 크기
          "size": [ 114, 60 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "scrolling_panel@common.scrolling_panel": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 오버라이드 가능한 변수
                "$show_background": false,
                // 가로/세로 크기
                "size": ["100% - 2px", "100% - 3px"],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 2 ],
                // 오버라이드 가능한 변수
                "$scrolling_content": "magic_learning_station.description",
                // 오버라이드 가능한 변수
                "$scroll_size": [ 1, "100% - 4px" ],
                // 오버라이드 가능한 변수
                "$scroll_bar_right_padding_size": [ 1, 0 ],
                // 오버라이드 가능한 변수
                "$scroll_bar_right_padding_size_touch": [ 2, 0 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "desc_toggle_data",
                    // 계산식/참조 값
                    "source_property_name": "(not (#toggle_state))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "scrolling_panel@common.scrolling_panel": {
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "top_left",
                // 기준점(어디에서 시작할지)
                "anchor_from": "top_left",
                // 오버라이드 가능한 변수
                "$show_background": false,
                // 가로/세로 크기
                "size": ["100% - 2px", "100% + 40px"],
                // 기준점에서 이동하는 거리
                "offset": [ 0, 2 ],
                // 오버라이드 가능한 변수
                "$scrolling_content": "magic_learning_station.description",
                // 오버라이드 가능한 변수
                "$scroll_size": [ 1, "100% - 4px" ],
                // 오버라이드 가능한 변수
                "$scroll_bar_right_padding_size": [ 1, 0 ],
                // 오버라이드 가능한 변수
                "$scroll_bar_right_padding_size_touch": [ 2, 0 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "desc_toggle_data",
                    // 계산식/참조 값
                    "source_property_name": "#toggle_state",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#form_button_texture",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#content_label",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#content_label = 'description_scroll')",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "craft_button@common.button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.form_button_click",
          // 가로/세로 크기
          "size": [ 110, 20 ],
          // 기준점에서 이동하는 거리
          "offset": [ 107, 62 ],
          // 입력 키/버튼과 동작 연결
          "button_mappings": [
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_select",
              // 어떤 동작을 실행할지
              "to_button_id": "$pressed_button_name",
              // 입력 시점(pressed 등)
              "mapping_type": "pressed"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.menu_ok",
              // 어떤 동작을 실행할지
              "to_button_id": "$pressed_button_name",
              // 입력 시점(pressed 등)
              "mapping_type": "focused"
            },
            {
              // 어떤 입력을 받을지
              "from_button_id": "button.controller_select",
              // 어떤 동작을 실행할지
              "to_button_id": "$pressed_button_name",
              // 입력 시점(pressed 등)
              "mapping_type": "global"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "default": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/learning_station/button_unpress",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 보여줄 글자
                    "text": {
                      // 글자 표시
                      "type": "label",
                      // ??
                      "font_type": "MinecraftTen",
                      // 보여줄 글자
                      "text": "주문 제작",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, -3 ],
                      // ?? (R,G,B,A)
                      "color": [ 0.6, 0.48, 0.35 ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "hover": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/learning_station/button_hover",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 보여줄 글자
                    "text": {
                      // 글자 표시
                      "type": "label",
                      // ??
                      "font_type": "MinecraftTen",
                      // 보여줄 글자
                      "text": "주문 제작",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, -3 ],
                      // ?? (R,G,B,A)
                      "color": [ 0.1, 0.07, 0.01 ]
                    }
                  },
                  {
                    // 다른 템플릿을 가져와서 확장(상속)
                    "hover@magic_learning_station.button_border_light": {
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 2,
                      // 가로/세로 크기
                      "size": [ "100% + 2px", "100% + 2px" ]
                    }
                  }
                ]
              }
            },
            {
              // ???/?? ??
              "pressed": {
                // 이미지 표시
                "type": "image",
                // 사용할 이미지 경로
                "texture": "textures/ui/learning_station/button_press",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  {
                    // 보여줄 글자
                    "text": {
                      // 글자 표시
                      "type": "label",
                      // ??
                      "font_type": "MinecraftTen",
                      // 보여줄 글자
                      "text": "주문 제작",
                      // 기준점에서 이동하는 거리
                      "offset": [ 0, -1 ],
                      // ?? (R,G,B,A)
                      "color": [ 0.1, 0.07, 0.01 ]
                    }
                  }
                ]
              }
            }
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#form_button_texture",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#content_label",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#content_label = 'craft')",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            },
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "magic_type_button8@magic_learning_station.magic_type_button": {
          // 오버라이드 가능한 변수
          "$button_image": "textures/ui/learning_station/fire_type_button",
          // 기준점에서 이동하는 거리
          "offset": [ -217, -67 ],
          // 오버라이드 가능한 변수
          "$button_param": "fire_type"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "magic_type_button6@magic_learning_station.magic_type_button": {
          // 오버라이드 가능한 변수
          "$button_image": "textures/ui/learning_station/dark_type_button",
          // 기준점에서 이동하는 거리
          "offset": [ -217, -50 ],
          // 오버라이드 가능한 변수
          "$button_param": "dark_type"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "magic_type_button7@magic_learning_station.magic_type_button": {
          // 오버라이드 가능한 변수
          "$button_image": "textures/ui/learning_station/nature_type_button",
          // 기준점에서 이동하는 거리
          "offset": [ -217, -33 ],
          // 오버라이드 가능한 변수
          "$button_param": "nature_type"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "magic_type_button1@magic_learning_station.magic_type_button": {
          // 오버라이드 가능한 변수
          "$button_image": "textures/ui/learning_station/wind_type_button",
          // 기준점에서 이동하는 거리
          "offset": [ -217, -16 ],
          // 오버라이드 가능한 변수
          "$button_param": "wind_type"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "magic_type_button0@magic_learning_station.magic_type_button": {
          // 오버라이드 가능한 변수
          "$button_image": "textures/ui/learning_station/void_type_button",
          // 기준점에서 이동하는 거리
          "offset": [ -217, 0 ],
          // 오버라이드 가능한 변수
          "$button_param": "void_type"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "magic_type_button5@magic_learning_station.magic_type_button": {
          // 오버라이드 가능한 변수
          "$button_image": "textures/ui/learning_station/ice_type_button",
          // 기준점에서 이동하는 거리
          "offset": [ -217, 17 ],
          // 오버라이드 가능한 변수
          "$button_param": "ice_type"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "magic_type_button4@magic_learning_station.magic_type_button": {
          // 오버라이드 가능한 변수
          "$button_image": "textures/ui/learning_station/water_type_button",
          // 기준점에서 이동하는 거리
          "offset": [ -217, 34 ],
          // 오버라이드 가능한 변수
          "$button_param": "water_type"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "magic_type_button2@magic_learning_station.magic_type_button": {
          // 오버라이드 가능한 변수
          "$button_image": "textures/ui/learning_station/thunder_type_button",
          // 기준점에서 이동하는 거리
          "offset": [ -217, 51 ],
          // 오버라이드 가능한 변수
          "$button_param": "thunder_type"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "magic_type_button3@magic_learning_station.magic_type_button": {
          // 오버라이드 가능한 변수
          "$button_image": "textures/ui/learning_station/light_type_button",
          // 기준점에서 이동하는 거리
          "offset": [ -217, 68 ],
          // 오버라이드 가능한 변수
          "$button_param": "light_type"
        }
      }
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#collection_index < 11)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  },

  // ???/?? ??
  "scroll_craft_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 344, 160 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, 6 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "common_panel@common.common_panel": {
          // 오버라이드 가능한 변수
          "$show_close_button": false,
          // 오버라이드 가능한 변수
          "$dialog_background": "magic_learning_station.transparent"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "desc_toggle@magic_learning_station.desc_toggle": {
          // 기준점에서 이동하는 거리
          "offset": [ 45, 35 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "close_button@magic_learning_station.close_button": {
          // 기준점에서 이동하는 거리
          "offset": [ 45, 13 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "magic_scroll_panel@magic_learning_station.magic_scroll_panel": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_right",
          // 기준점에서 이동하는 거리
          "offset": [ -5, -2 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "magic_scroll_list_panel@magic_learning_station.magic_scroll_list_panel": {
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left",
          // 기준점에서 이동하는 거리
          "offset": [ 5, -2 ]
        }
      },
      {
        // ???/?? ??
        "title": {
          // 글자 표시
          "type": "label",
          // ??
          "font_type": "MinecraftTen",
          // 보여줄 글자
          "text": "마법 학습대",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // ?? (R,G,B,A)
          "color": [ 0.23, 0.23, 0.23 ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "static_panel@magic_learning_station.static_panel": {}
      }
    ]
  },

  // ???/?? ??
  "menu_main_button": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 96, 128 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button@common_buttons.light_text_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.form_button_click",
          // 가로/세로 크기
          "size": [ 64, 128 ],

          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/blank",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/ribbon_bar_text_background_hover",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/blank",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/blank",

          // 오버라이드 가능한 변수
          "$button_text_binding_type": "collection",
          // 오버라이드 가능한 변수
          "$button_text_grid_collection_name": "form_buttons",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            }
          ]
        }
      },
      {
        // ???/?? ??
        "image": {
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 가로/세로 크기
          "size": [ 64, 128 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings":[
            {
              // 가져올 값 이름
              "binding_name": "#form_button_text",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 가져올 값 이름
              "binding_name": "#form_button_texture_file_system",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture_file_system",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not ((#texture = '') or (#texture = 'loading')))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      }
    ]
  }
}

magic_reinforcement_table_screen.json MagicWay UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: magic_reinforcement_table_screen.json
// 분류: MagicWay UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "magic_reinforcement_table",

    // 다른 템플릿을 가져와서 확장(상속)
    "add_button@scroll_image.container_item_with_no_durability": {
        // 오버라이드 가능한 변수
        "$button_ref": "magic_reinforcement_table.button_prototype",
        // 가로/세로 크기
        "size": [ 9, 9 ],
        // 오버라이드 가능한 변수
        "$item_renderer_panel_size": [ 7, 7 ],
        // 오버라이드 가능한 변수
        "$item_renderer_size": [ 7, 7 ],
        // 오버라이드 가능한 변수
        "$cell_image_size": [ 9, 9 ],
        // 오버라이드 가능한 변수
        "$background_images": "scroll_image.black_border",
        // 오버라이드 가능한 변수
        "$item_renderer": "scroll_image.attribute_add_button",
        // 오버라이드 가능한 변수
        "$highlight_control": "scroll_image.highlight_add_panel"
    },

    // 다른 템플릿을 가져와서 확장(상속)
    "transform_spell_book@scroll_image.black_border": {
        // 가로/세로 크기
        "size": [ "100%", 25 ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "container@common.container_item": {
                    // 오버라이드 가능한 변수
                    "$button_ref": "magic_reinforcement_table.button_prototype",
                    // 가로/세로 크기
                    "size": [ "100% - 1px", 23 ],
                    // 오버라이드 가능한 변수
                    "$item_renderer_panel_size": [ "100% - 1px", 23 ],
                    // 오버라이드 가능한 변수
                    "$item_renderer_offset": [ 49, 0 ],
                    // 오버라이드 가능한 변수
                    "$cell_image_size": [ "100% - 1px", 23 ],
                    // 오버라이드 가능한 변수
                    "$background_images": "scroll_image.black_button_image",
                    // 오버라이드 가능한 변수
                    "$item_renderer": "scroll_image.transform_spell",
                    // 오버라이드 가능한 변수
                    "$highlight_control": "scroll_image.highlight_transform"
                }
            }
        ],
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 목록 인덱스/현재 항목 정보 제공
                "binding_type": "collection_details",
                // 목록 이름
                "binding_collection_name": "container_items"
            },
            {
                // 가져올 값 이름
                "binding_name": "#collection_index",
                // 목록 인덱스/현재 항목 정보 제공
                "binding_type": "collection_details",
                // 목록 이름
                "binding_collection_name": "container_items"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(#collection_index > 13)",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ]
    },

    // 다른 템플릿을 가져와서 확장(상속)
    "button_prototype@common.container_slot_button_prototype": {
        // 입력 키/버튼과 동작 연결
        "button_mappings": [
            {
                // 어떤 입력을 받을지
                "from_button_id": "button.menu_select",
                // 어떤 동작을 실행할지
                "to_button_id": "button.container_auto_place",
                // 입력 시점(pressed 등)
                "mapping_type": "pressed"
            },
            {
                // 어떤 입력을 받을지
                "from_button_id": "button.menu_ok",
                // 어떤 동작을 실행할지
                "to_button_id": "button.container_auto_place",
                // 입력 시점(pressed 등)
                "mapping_type": "pressed"
            },
            {
                // 어떤 입력을 받을지
                "from_button_id": "button.menu_auto_place",
                // 어떤 동작을 실행할지
                "to_button_id": "button.container_auto_place",
                // 입력 시점(pressed 등)
                "mapping_type": "pressed"
            }
        ]
    },

    // ???/?? ??
    "magic_reinforcement_table_input": {
        // 데이터 목록을 반복 배치
        "type": "collection_panel",
        // 기준점(어디에서 시작할지)
        "anchor_from": "center",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "center",
        // 가로/세로 크기
        "size": [ 0, 0 ],

        // 목록 이름
        "collection_name": "container_items",
        // 오버라이드 가능한 변수
        "$item_collection_name": "container_items",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_0@common.container_item": {
                    // 기준점에서 이동하는 거리
                    "offset": [ -68, -17 ],
                    // 가로/세로 크기
                    "size": [ 25, 25 ],
                    // 오버라이드 가능한 변수
                    "$item_renderer_panel_size": [ 25, 25 ],
                    // 오버라이드 가능한 변수
                    "$cell_image_size": [ 25, 25 ],
                    // 오버라이드 가능한 변수
                    "$cell_overlay_ref": "scroll_image.item_reinforcement_overlay",
                    // ?? ??
                    "collection_index": 0
                }
            },
            {
                // ???/?? ??
                "item_1": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [ 160, 156 ],
                    // 기준점에서 이동하는 거리
                    "offset": [ -175, 28 ],
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 2,
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "text@scroll_image.item_name_panel": {
                                // 가로/세로 크기
                                "size": [ 160, 156 ]
                            }
                        }
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // ?? ??
                            "source_control_name": "spell_toggle",
                            // 계산식/참조 값
                            "source_property_name": "#toggle_state",
                            // 결과가 들어갈 속성
                            "target_property_name": "#toggle_state"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "#toggle_state",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ],
                    // ?? ??
                    "collection_index": 1
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_2@magic_reinforcement_table.add_button": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 248, -23 ],
                    // 오버라이드 가능한 변수
                    "$name": "영혼 용량",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // ?? ??
                            "source_control_name": "attributes_toggle",
                            // 계산식/참조 값
                            "source_property_name": "#toggle_state",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ],
                    // ?? ??
                    "collection_index": 2
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_3@magic_reinforcement_table.add_button": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 248, -13 ],
                    // 오버라이드 가능한 변수
                    "$name": "화염 마법",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // ?? ??
                            "source_control_name": "attributes_toggle",
                            // 계산식/참조 값
                            "source_property_name": "#toggle_state",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ],
                    // ?? ??
                    "collection_index": 3
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_4@magic_reinforcement_table.add_button": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 248, -3 ],
                    // 오버라이드 가능한 변수
                    "$name": "물 마법",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // ?? ??
                            "source_control_name": "attributes_toggle",
                            // 계산식/참조 값
                            "source_property_name": "#toggle_state",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ],
                    // ?? ??
                    "collection_index": 4
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_5@magic_reinforcement_table.add_button": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 248, 7 ],
                    // 오버라이드 가능한 변수
                    "$name": "자연 마법",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // ?? ??
                            "source_control_name": "attributes_toggle",
                            // 계산식/참조 값
                            "source_property_name": "#toggle_state",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ],
                    // ?? ??
                    "collection_index": 5
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_6@magic_reinforcement_table.add_button": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 248, 17 ],
                    // 오버라이드 가능한 변수
                    "$name": "냉기 마법",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // ?? ??
                            "source_control_name": "attributes_toggle",
                            // 계산식/참조 값
                            "source_property_name": "#toggle_state",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ],
                    // ?? ??
                    "collection_index": 6
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_7@magic_reinforcement_table.add_button": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 248, 27 ],
                    // 오버라이드 가능한 변수
                    "$name": "공허 마법",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // ?? ??
                            "source_control_name": "attributes_toggle",
                            // 계산식/참조 값
                            "source_property_name": "#toggle_state",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ],
                    // ?? ??
                    "collection_index": 7
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_8@magic_reinforcement_table.add_button": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 248, 37 ],
                    // 오버라이드 가능한 변수
                    "$name": "암흑 마법",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // ?? ??
                            "source_control_name": "attributes_toggle",
                            // 계산식/참조 값
                            "source_property_name": "#toggle_state",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ],
                    // ?? ??
                    "collection_index": 8
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_9@magic_reinforcement_table.add_button": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 248, 47 ],
                    // 오버라이드 가능한 변수
                    "$name": "광명 마법",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // ?? ??
                            "source_control_name": "attributes_toggle",
                            // 계산식/참조 값
                            "source_property_name": "#toggle_state",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ],
                    // ?? ??
                    "collection_index": 9
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_10@magic_reinforcement_table.add_button": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 248, 57 ],
                    // 오버라이드 가능한 변수
                    "$name": "바람 마법",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // ?? ??
                            "source_control_name": "attributes_toggle",
                            // 계산식/참조 값
                            "source_property_name": "#toggle_state",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ],
                    // ?? ??
                    "collection_index": 10
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_11@magic_reinforcement_table.add_button": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 248, 67 ],
                    // 오버라이드 가능한 변수
                    "$name": "천둥 마법",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // ?? ??
                            "source_control_name": "attributes_toggle",
                            // 계산식/참조 값
                            "source_property_name": "#toggle_state",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ],
                    // ?? ??
                    "collection_index": 11
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_12@common.container_item": {
                    // 기준점에서 이동하는 거리
                    "offset": [ -68, 9 ],
                    // 오버라이드 가능한 변수
                    "$cell_overlay_ref": "enchanting.lapis_image",
                    // ?? ??
                    "collection_index": 12
                }
            },
            {
                // ???/?? ??
                "item_13": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [ 80, 126 ],
                    // 기준점에서 이동하는 거리
                    "offset": [ 208, 12 ],
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 2,
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "text@scroll_image.item_name_panel": {}
                        }
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // ?? ??
                            "source_control_name": "attributes_toggle",
                            // 계산식/참조 값
                            "source_property_name": "#toggle_state",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ],
                    // ?? ??
                    "collection_index": 13
                }
            }
        ]
    },

    // ???/?? ??
    "reinforcement_choice": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 가로/세로 크기
        "size": ["100% - 4px", "100%c + 1px"],
        // 기준점에서 이동하는 거리
        "offset": [2,0],
        // 쌓는 방향(가로/세로)
        "orientation": "vertical",
        // 기준점(어디에서 시작할지)
        "anchor_from": "top_middle",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "top_middle",
        // 오버라이드 가능한 변수
        "$scale": 21,

        // 목록 이름
        "collection_name": "container_items",
        // 오버라이드 가능한 변수
        "$item_collection_name": "container_items",

        // 목록 아이템을 자동으로 생성
        "factory":{
            // ?? ??
            "name": "magic_reinforcement_table",
            // ??? ???
            "control_name": "magic_reinforcement_table.transform_spell_book"
        },
        // 이 컨트롤 안에서 쓰는 임시 저장소
        "property_bag": {
            // ???/??? ?
            "#scale": "$scale"
        },
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(#scale * 1)",
                // 결과가 들어갈 속성
                "target_property_name": "#collection_length"
            }
        ]
    },

    // 다른 템플릿을 가져와서 확장(상속)
    "scrolling_panel@common.scrolling_panel": {
        // 오버라이드 가능한 변수
        "$show_background": false,
        // 가로/세로 크기
        "size": ["100% - 2px", "100% - 3px"],
        // 오버라이드 가능한 변수
        "$scrolling_content": "magic_reinforcement_table.reinforcement_choice",
        // 오버라이드 가능한 변수
        "$scroll_size": [ 1, "100% - 4px" ],
        // 오버라이드 가능한 변수
        "$scroll_bar_right_padding_size": [ 1, 0 ],
        // 오버라이드 가능한 변수
        "$scroll_bar_right_padding_size_touch": [ 2, 0 ]
    },

    // ???/?? ??
    "layout_toggle_content": {
        // 이미지 표시
        "type": "image",
        // 기준점에서 이동하는 거리
        "offset": [ 0, -1 ],
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "top_middle",
        // 기준점(어디에서 시작할지)
        "anchor_from": "top_middle",
        // 사용할 이미지 경로
        "texture": "$icon",
        // 가로/세로 크기
        "size": [ 19, 13 ],
        // 겹치는 순서(숫자 클수록 위)
        "layer": 1
    },

    // ???/?? ??
    "toolbar": {
        // 이미지 표시
        "type": "image",
        // 사용할 이미지 경로
        "texture": "textures/ui/toolbar_background",
        // 가로/세로 크기
        "size": [
            "100%cm + 17px",
            26
        ],
        // 기준점에서 이동하는 거리
        "offset": [ 0, 3 ],
        // 기준점(어디에서 시작할지)
        "anchor_from": "top_right",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "bottom_right",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "inner": {
                    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                    "type": "stack_panel",
                    // 쌓는 방향(가로/세로)
                    "orientation": "horizontal",
                    // 가로/세로 크기
                    "size": [
                        "100%c",
                        18
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "spell_description@common_toggles.light_image_toggle": {
                                // 오버라이드 가능한 변수
                                "$toggle_view_binding_name": "spell_toggle",
                                // 오버라이드 가능한 변수
                                "$icon": "textures/ui/spell_description",
                                // 오버라이드 가능한 변수
                                "$button_content": "magic_reinforcement_table.layout_toggle_content",
                                // 오버라이드 가능한 변수
                                "$toggle_name": "layout_toggle",
                                // 오버라이드 가능한 변수
                                "$button_mappings": [
                                  {
                                    // 어떤 입력을 받을지
                                    "from_button_id": "button.menu_select",
                                    // 어떤 동작을 실행할지
                                    "to_button_id": "button.menu_select",
                                    // 입력 시점(pressed 등)
                                    "mapping_type": "pressed"
                                  },
                                  {
                                    // 어떤 입력을 받을지
                                    "from_button_id": "button.menu_ok",
                                    // 어떤 동작을 실행할지
                                    "to_button_id": "button.menu_ok",
                                    // 입력 시점(pressed 등)
                                    "mapping_type": "focused"
                                  },
                                  {
                                    // 어떤 입력을 받을지
                                    "from_button_id": "button.menu_tab_left",
                                    // 어떤 동작을 실행할지
                                    "to_button_id": "button.spell_toggle",
                                    // 입력 시점(pressed 등)
                                    "mapping_type": "global"
                                  }
                                ],
                                // 가로/세로 크기
                                "size": [ 25, 18 ]
                            }
                        },
                        {
                            // ???/?? ??
                            "space": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 2, 0 ]
                            }
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "spell_attributes@common_toggles.light_image_toggle": {
                                // 오버라이드 가능한 변수
                                "$toggle_view_binding_name": "attributes_toggle",
                                // 오버라이드 가능한 변수
                                "$icon": "textures/ui/spell_attributes",
                                // 오버라이드 가능한 변수
                                "$button_content": "magic_reinforcement_table.layout_toggle_content",
                                // 오버라이드 가능한 변수
                                "$toggle_name": "layout_toggle",
                                // 오버라이드 가능한 변수
                                "$button_mappings": [
                                  {
                                    // 어떤 입력을 받을지
                                    "from_button_id": "button.menu_select",
                                    // 어떤 동작을 실행할지
                                    "to_button_id": "button.menu_select",
                                    // 입력 시점(pressed 등)
                                    "mapping_type": "pressed"
                                  },
                                  {
                                    // 어떤 입력을 받을지
                                    "from_button_id": "button.menu_ok",
                                    // 어떤 동작을 실행할지
                                    "to_button_id": "button.menu_ok",
                                    // 입력 시점(pressed 등)
                                    "mapping_type": "focused"
                                  },
                                  {
                                    // 어떤 입력을 받을지
                                    "from_button_id": "button.menu_tab_right",
                                    // 어떤 동작을 실행할지
                                    "to_button_id": "button.attributes_toggle",
                                    // 입력 시점(pressed 등)
                                    "mapping_type": "global"
                                  }
                                ],
                                // 가로/세로 크기
                                "size": [ 25, 18 ]
                            }
                        },
                        {
                            // ???/?? ??
                            "space": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 2, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#close_button_visible",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "close_button_panel": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 15, "100%" ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#close_button_visible",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#visible"
                                    }
                                ],
                                // 이 안에 들어가는 부품 목록
                                "controls": [
                                    {
                                        // 다른 템플릿을 가져와서 확장(상속)
                                        "close_button@common.light_close_button": {
                                            // 기준점에서 이동하는 거리
                                            "offset": [ 0, 0 ],
                                            // 기준점(어디에서 시작할지)
                                            "anchor_from": "center",
                                            // 붙일 위치(어디에 놓을지)
                                            "anchor_to": "center"
                                        }
                                    }
                                ]
                            }
                        }
                    ]
                }
            },
            {
                // ???/?? ??
                "helper": {
                    // 이미지 표시
                    "type": "image",
                    // 사용할 이미지 경로
                    "texture": "textures/ui/generic_bumper_left",
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "left_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "right_middle",
                    // 가로/세로 크기
                    "size": [ 26, 26 ],
                    // 기준점에서 이동하는 거리
                    "offset": [ -1, 0 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 가져올 값 이름
                            "binding_name": "(#is_using_gamepad)",
                            // 가져온 값을 다른 속성으로 연결
                            "binding_name_override": "#visible"
                        }
                    ]
                }
            },
            {
                // ???/?? ??
                "helper": {
                    // 이미지 표시
                    "type": "image",
                    // 사용할 이미지 경로
                    "texture": "textures/ui/generic_bumper_right",
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "right_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "left_middle",
                    // 가로/세로 크기
                    "size": [ 26, 26 ],
                    // 기준점에서 이동하는 거리
                    "offset": [ 1, 0 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 가져올 값 이름
                            "binding_name": "(#is_using_gamepad)",
                            // 가져온 값을 다른 속성으로 연결
                            "binding_name_override": "#visible"
                        }
                    ]
                }
            }
        ]
    },

    // ???/?? ??
    "magic_reinforcement_table_panel": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 이 안에 들어가는 부품 목록
        "controls": [
            { "container_gamepad_helpers@common.container_gamepad_helpers": {} },
            { "selected_item_details_factory@common.selected_item_details_factory": {} },
            { "item_lock_notification_factory@common.item_lock_notification_factory": {} },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "root_panel@common.root_panel": {
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 1,
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // ???/?? ??
                            "all_panel": {
                                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                "type": "stack_panel",
                                // 가로/세로 크기
                                "size": [
                                    "100%c",
                                    "166px"
                                ],
                                // 쌓는 방향(가로/세로)
                                "orientation": "horizontal",
                                // 이 안에 들어가는 부품 목록
                                "controls": [
                                    {
                                        // 다른 템플릿을 가져와서 확장(상속)
                                        "spell_book_panel@scroll_image.grey_border": {
                                            // 가로/세로 크기
                                            "size": [ 170, 166 ],
                                            // 게임 값과 연결하는 규칙 목록
                                            "bindings": [
                                                {
                                                    // 계산/조건 결과를 연결
                                                    "binding_type": "view",
                                                    // ?? ??
                                                    "source_control_name": "spell_toggle",
                                                    // 계산식/참조 값
                                                    "source_property_name": "#toggle_state",
                                                    // 결과가 들어갈 속성
                                                    "target_property_name": "#visible"
                                                }
                                            ]
                                        }
                                    },
                                    {
                                        // ???/?? ??
                                        "space": {
                                            // 패널: 다른 부품을 담는 바닥판
                                            "type": "panel",
                                            // 가로/세로 크기
                                            "size": [ 2, 166 ],
                                            // 게임 값과 연결하는 규칙 목록
                                            "bindings": [
                                                {
                                                    // 계산/조건 결과를 연결
                                                    "binding_type": "view",
                                                    // ?? ??
                                                    "source_control_name": "spell_toggle",
                                                    // 계산식/참조 값
                                                    "source_property_name": "#toggle_state",
                                                    // 결과가 들어갈 속성
                                                    "target_property_name": "#visible"
                                                }
                                            ]
                                        }
                                    },
                                    {
                                        // ???/?? ??
                                        "main_panel": {
                                            // 패널: 다른 부품을 담는 바닥판
                                            "type": "panel",
                                            // 가로/세로 크기
                                            "size": [ 177, 166 ],
                                            // 이 안에 들어가는 부품 목록
                                            "controls": [
                                                {
                                                    // 다른 템플릿을 가져와서 확장(상속)
                                                    "toolbar@magic_reinforcement_table.toolbar": {
                                                    }
                                                },
                                                {
                                                    // 다른 템플릿을 가져와서 확장(상속)
                                                    "common_panel@common.common_panel": {
                                                        // 오버라이드 가능한 변수
                                                        "$show_close_button": false
                                                    }
                                                },
                                                {
                                                    // ???/?? ??
                                                    "chest_panel": {
                                                        // 패널: 다른 부품을 담는 바닥판
                                                        "type": "panel",
                                                        // 겹치는 순서(숫자 클수록 위)
                                                        "layer": 5,
                                                        // 이 안에 들어가는 부품 목록
                                                        "controls": [
                                                            {
                                                                // ???/?? ??
                                                                "small_chest_panel_top_half": {
                                                                    // 패널: 다른 부품을 담는 바닥판
                                                                    "type": "panel",
                                                                    // 가로/세로 크기
                                                                    "size": [ "100%", "50%" ],
                                                                    // 기준점에서 이동하는 거리
                                                                    "offset": [ 0, 12 ],
                                                                    // 붙일 위치(어디에 놓을지)
                                                                    "anchor_to": "top_middle",
                                                                    // 기준점(어디에서 시작할지)
                                                                    "anchor_from": "top_middle",
                                                                    // 이 안에 들어가는 부품 목록
                                                                    "controls": [
                                                                        {
                                                                            // ???/?? ??
                                                                            "chest_label": {
                                                                                // 글자 표시
                                                                                "type": "label",
                                                                                // 기준점에서 이동하는 거리
                                                                                "offset": [ 0, -5 ],
                                                                                // 기준점(어디에서 시작할지)
                                                                                "anchor_from": "top_middle",
                                                                                // 붙일 위치(어디에 놓을지)
                                                                                "anchor_to": "top_middle",
                                                                                // 보여줄 글자
                                                                                "text": "마법 강화대",
                                                                                // ?? (R,G,B,A)
                                                                                "color": "$title_text_color",
                                                                                // 겹치는 순서(숫자 클수록 위)
                                                                                "layer": 2
                                                                            }
                                                                        },
                                                                        {
                                                                            // 다른 템플릿을 가져와서 확장(상속)
                                                                            "magic_reinforcement_table_input@magic_reinforcement_table.magic_reinforcement_table_input": {
                                                                            }
                                                                        },
                                                                        {
                                                                            // 다른 템플릿을 가져와서 확장(상속)
                                                                            "black_border@scroll_image.black_border": {
                                                                                // 기준점(어디에서 시작할지)
                                                                                "anchor_from": "right_middle",
                                                                                // 붙일 위치(어디에 놓을지)
                                                                                "anchor_to": "right_middle",
                                                                                // 겹치는 순서(숫자 클수록 위)
                                                                                "layer": 1,
                                                                                // 기준점에서 이동하는 거리
                                                                                "offset": [ -7, -5 ],
                                                                                // 가로/세로 크기
                                                                                "size": [ 130, 55 ],
                                                                                // 이 안에 들어가는 부품 목록
                                                                                "controls": [
                                                                                    {
                                                                                        // 다른 템플릿을 가져와서 확장(상속)
                                                                                        "scrolling_panel@magic_reinforcement_table.scrolling_panel": {}
                                                                                    }
                                                                                ]
                                                                            }
                                                                        }
                                                                    ]
                                                                }
                                                            },
                                                            { "inventory_panel_bottom_half_with_label@common.inventory_panel_bottom_half_with_label": {} },
                                                            { "hotbar_grid@common.hotbar_grid_template": {} },
                                                            { "inventory_take_progress_icon_button@common.inventory_take_progress_icon_button": {} },
                                                            { "flying_item_renderer@common.flying_item_renderer": { "layer": 15 } },
                                                            {
                                                                // ???/?? ??
                                                                "point_label": {
                                                                    // 글자 표시
                                                                    "type": "label",
                                                                    // 보여줄 글자
                                                                    "text": "남은 아이템 포인트:",
                                                                    // 기준점에서 이동하는 거리
                                                                    "offset": [ 137, -73 ],
                                                                    // 겹치는 순서(숫자 클수록 위)
                                                                    "layer": 2,
                                                                    // 게임 값과 연결하는 규칙 목록
                                                                    "bindings": [
                                                                        {
                                                                            // 계산/조건 결과를 연결
                                                                            "binding_type": "view",
                                                                            // ?? ??
                                                                            "source_control_name": "attributes_toggle",
                                                                            // 계산식/참조 값
                                                                            "source_property_name": "#toggle_state",
                                                                            // 결과가 들어갈 속성
                                                                            "target_property_name": "#visible"
                                                                        }
                                                                    ]
                                                                }
                                                            }
                                                        ]
                                                    }
                                                }
                                            ]
                                        }
                                    },
                                    {
                                        // ???/?? ??
                                        "space": {
                                            // 패널: 다른 부품을 담는 바닥판
                                            "type": "panel",
                                            // 가로/세로 크기
                                            "size": [ 2, 166 ],
                                            // 게임 값과 연결하는 규칙 목록
                                            "bindings": [
                                                {
                                                    // 계산/조건 결과를 연결
                                                    "binding_type": "view",
                                                    // ?? ??
                                                    "source_control_name": "attributes_toggle",
                                                    // 계산식/참조 값
                                                    "source_property_name": "#toggle_state",
                                                    // 결과가 들어갈 속성
                                                    "target_property_name": "#visible"
                                                }
                                            ]
                                        }
                                    },
                                    {
                                        // 다른 템플릿을 가져와서 확장(상속)
                                        "item_attributes_panel@scroll_image.grey_border": {
                                            // 가로/세로 크기
                                            "size": [ 170, 166 ],
                                            // 게임 값과 연결하는 규칙 목록
                                            "bindings": [
                                                {
                                                    // 계산/조건 결과를 연결
                                                    "binding_type": "view",
                                                    // ?? ??
                                                    "source_control_name": "attributes_toggle",
                                                    // 계산식/참조 값
                                                    "source_property_name": "#toggle_state",
                                                    // 결과가 들어갈 속성
                                                    "target_property_name": "#visible"
                                                }
                                            ]
                                        }
                                    }
                                ]
                            }
                        },
                        { "inventory_selected_icon_button@common.inventory_selected_icon_button": {} },
                        { "gamepad_cursor@common.gamepad_cursor_button": {} }
                    ]
                }
            }
        ]
    }
}

magic_ui_util.json MagicWay UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: magic_ui_util.json
// 분류: MagicWay UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "magic_ui_util",

  // ???/?? ??
  "cell_image": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/cell_image",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // ???/?? ??
  "black_cell_image": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/button_borderless_darkpressednohover",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1
  },

  // ???/?? ??
  "form_icon_black_cell": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 가로/세로 크기
    "size": [ 18, 18 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "image": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ 14, 14],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 16,
          // 게임 값과 연결하는 규칙 목록
          "bindings":[
            {
              // 가져올 값 이름
              "binding_name": "#form_button_texture",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 가져올 값 이름
              "binding_name": "#form_button_texture_file_system",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture_file_system",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button_input@common_buttons.light_content_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.form_button_click",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 가로/세로 크기
          "size": [ 18, 18 ],
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/blank",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/ribbon_bar_text_background_hover",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/blank",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/blank",
          // 오버라이드 가능한 변수
          "$border_default_alpha": 0,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#form_button_text",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#content_label",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "image",
              // ?? ??
              "resolve_sibling_scope": true,
              // 계산식/참조 값
              "source_property_name": "(not (#texture = 'textures/ui/blank'))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "cell_image@magic_ui_util.black_cell_image": {}
      }
    ]
  },

  // ???/?? ??
  "form_icon_cell": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 가로/세로 크기
    "size": [ 18, 18 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // ???/?? ??
        "image": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ 14, 14],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 16,
          // 게임 값과 연결하는 규칙 목록
          "bindings":[
            {
              // 가져올 값 이름
              "binding_name": "#form_button_texture",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 가져올 값 이름
              "binding_name": "#form_button_texture_file_system",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#texture_file_system",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "button_input@common_buttons.light_content_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.form_button_click",
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 가로/세로 크기
          "size": [ 18, 18 ],
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/blank",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/ribbon_bar_text_background_hover",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/blank",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/blank",
          // 오버라이드 가능한 변수
          "$border_default_alpha": 0,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#form_button_text",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#content_label",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "image",
              // ?? ??
              "resolve_sibling_scope": true,
              // 계산식/참조 값
              "source_property_name": "(not (#texture = 'textures/ui/blank'))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "cell_image@magic_ui_util.cell_image": {}
      }
    ]
  }
}

scrolls_item_ui.json MagicWay UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: scrolls_item_ui.json
// 분류: MagicWay UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "scroll_image",

    // ???/?? ??
    "item_reinforcement_animation": {
        // 프레임 애니메이션
        "anim_type": "flip_book",
        // ?? ??
        "initial_uv": [ 0, 0 ],
        // ?? ??
        "frame_count": 5,
        // ?? ??
        "frame_step": 16,
        // ?? ??
        "fps": 1.0,
        // 움직임 곡선
        "easing": "linear"
    },

    // ???/?? ??
    "item_binding_animation": {
        // 프레임 애니메이션
        "anim_type": "flip_book",
        // ?? ??
        "initial_uv": [ 0, 0 ],
        // ?? ??
        "frame_count": 2,
        // ?? ??
        "frame_step": 16,
        // ?? ??
        "fps": 1.0,
        // 움직임 곡선
        "easing": "linear"
    },

    // ???/?? ??
    "container_overlay": {
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 목록 인덱스/현재 항목 정보 제공
                "binding_type": "collection_details",
                // 목록 이름
                "binding_collection_name": "$item_collection_name"
            },
            {
                // 가져올 값 이름
                "binding_name": "#item_id_aux",
                // 목록 데이터를 반복 연결
                "binding_type": "collection",
                // 목록 이름
                "binding_collection_name": "$item_collection_name",
                // ?? ???
                "binding_condition": "none"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(not(#item_id_aux > 0))",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ]

    },

    // ???/?? ??
    "black_cell_image": {
        // 이미지 표시
        "type": "image",
        // 사용할 이미지 경로
        "texture": "textures/ui/button_borderless_darkpressednohover"
    },

    // ???/?? ??
    "black_button_image": {
      // 이미지 표시
      "type": "image",
      // 사용할 이미지 경로
      "texture": "textures/ui/button_borderless_dark",
      // 겹치는 순서(숫자 클수록 위)
      "layer": 1
    },

    // 다른 템플릿을 가져와서 확장(상속)
    "scroll_overlay@scroll_image.container_overlay": {
        // 이미지 표시
        "type": "image",
        // 가로/세로 크기
        "size": [ 16, 16 ],
        // 사용할 이미지 경로
        "texture": "textures/ui/scroll_binding_item",
        // ???? ?? ??
        "uv": "@scroll_image.item_binding_animation",
        // ???? ??
        "uv_size": [ 16, 16 ]
    },

    // 다른 템플릿을 가져와서 확장(상속)
    "spell_book_overlay@scroll_image.container_overlay": {
        // 이미지 표시
        "type": "image",
        // 가로/세로 크기
        "size": [ 16, 16 ],
        // 사용할 이미지 경로
        "texture": "textures/ui/casting_binding_item",
        // ???? ?? ??
        "uv": "@scroll_image.item_binding_animation",
        // ???? ??
        "uv_size": [ 16, 16 ]
    },

    // 다른 템플릿을 가져와서 확장(상속)
    "item_reinforcement_overlay@scroll_image.container_overlay": {
        // 이미지 표시
        "type": "image",
        // 가로/세로 크기
        "size": [ 16, 16 ],
        // 사용할 이미지 경로
        "texture": "textures/ui/reinforcement_item",
        // ???? ?? ??
        "uv": "@scroll_image.item_reinforcement_animation",
        // ???? ??
        "uv_size": [ 16, 16 ]
    },

    // ???/?? ??
    "grey_border": {
        // 이미지 표시
        "type": "image",
        // 사용할 이미지 경로
        "texture": "textures/ui/greyBorder",
        // 겹치는 순서(숫자 클수록 위)
        "layer": 1
    },

    // ???/?? ??
    "add_button": {
        // 이미지 표시
        "type": "image",
        // 사용할 이미지 경로
        "texture": "textures/ui/attribute_add_button",
        // 겹치는 순서(숫자 클수록 위)
        "layer": 1
    },

    // ???/?? ??
    "empty": {
        // 완전히 제거(공간도 없음)
        "ignored": true
    },

    // ???/?? ??
    "black_border": {
        // 이미지 표시
        "type": "image",
        // 사용할 이미지 경로
        "texture": "textures/ui/background_with_border"
    },

    // ???/?? ??
    "container_item_with_no_durability": {
      // 마우스/커서 따라다니는 패널
      "type": "input_panel",
      // 가로/세로 크기
      "size": [ 18, 18 ],
      // 겹치는 순서(숫자 클수록 위)
      "layer": 1,
      // 오버라이드 가능한 변수
      "$cell_image_size|default": [ 18, 18 ],
      // 오버라이드 가능한 변수
      "$cell_overlay_ref|default": "common.cell_overlay",
      // 오버라이드 가능한 변수
      "$button_ref|default": "common.container_slot_button_prototype",
      // 오버라이드 가능한 변수
      "$stack_count_required|default": true,
      // 오버라이드 가능한 변수
      "$durability_bar_required|default": true,
      // 오버라이드 가능한 변수
      "$storage_bar_required|default": true,
      // 오버라이드 가능한 변수
      "$item_renderer|default": "common.item_renderer",
      // 오버라이드 가능한 변수
      "$item_renderer_panel_size|default": [ 18, 18 ],
      // 오버라이드 가능한 변수
      "$item_renderer_size|default": [ 16, 16 ],
      // 오버라이드 가능한 변수
      "$item_renderer_offset|default": [ 0, 0 ],
      // 오버라이드 가능한 변수
      "$background_images|default": "common.cell_image_panel",
      // 오버라이드 가능한 변수
      "$background_image_control_name|default": "bg",

      // 오버라이드 가능한 변수
      "$focus_id|default": "",
      // 오버라이드 가능한 변수
      "$focus_override_down|default": "",
      // 오버라이드 가능한 변수
      "$focus_override_up|default": "",
      // 오버라이드 가능한 변수
      "$focus_override_left|default": "",
      // 오버라이드 가능한 변수
      "$focus_override_right|default": "",
      // 포커스 이동용 ID
      "focus_identifier": "$focus_id",
      // 아래로 이동할 대상
      "focus_change_down": "$focus_override_down",
      // 위로 이동할 대상
      "focus_change_up": "$focus_override_up",
      // 왼쪽으로 이동할 대상
      "focus_change_left": "$focus_override_left",
      // 오른쪽으로 이동할 대상
      "focus_change_right": "$focus_override_right",
      // 포커스 가능 여부
      "focus_enabled": true,
      // 끝에서 다시 처음으로 순환
      "focus_wrap_enabled": false,
      // ???/?? ??
      "focus_magnet_enabled": true,

      // 이 안에 들어가는 부품 목록
      "controls": [
        {
          // ???/?? ??
          "item_cell": {
            // 패널: 다른 부품을 담는 바닥판
            "type": "panel",
            // 가로/세로 크기
            "size": "$cell_image_size",
            // 겹치는 순서(숫자 클수록 위)
            "layer": 0,
            // 이 안에 들어가는 부품 목록
            "controls": [
              {
                // 다른 템플릿을 가져와서 확장(상속)
                "$background_image_control_name@$background_images": {
                  // 겹치는 순서(숫자 클수록 위)
                  "layer": 1
                }
              },
              {
                // ???/?? ??
                "item": {
                  // 패널: 다른 부품을 담는 바닥판
                  "type": "panel",
                  // 가로/세로 크기
                  "size": "$item_renderer_panel_size",
                  // 겹치는 순서(숫자 클수록 위)
                  "layer": 0,
                  // 이 안에 들어가는 부품 목록
                  "controls": [
                    {
                      // 다른 템플릿을 가져와서 확장(상속)
                      "stack_count_label@common.stack_count_label": {
                        // 겹치는 순서(숫자 클수록 위)
                        "layer": 27
                      }
                    },
                    {
                      // 다른 템플릿을 가져와서 확장(상속)
                      "$item_renderer@$item_renderer": {
                        // 가로/세로 크기
                        "size": "$item_renderer_size",
                        // 기준점에서 이동하는 거리
                        "offset": "$item_renderer_offset",
                        // 붙일 위치(어디에 놓을지)
                        "anchor_to": "center",
                        // 기준점(어디에서 시작할지)
                        "anchor_from": "center",
                        // 겹치는 순서(숫자 클수록 위)
                        "layer": 7
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          // 다른 템플릿을 가져와서 확장(상속)
          "item_cell_overlay_ref@$cell_overlay_ref": {
            // 겹치는 순서(숫자 클수록 위)
            "layer": 3
          }
        },
        {
          // 다른 템플릿을 가져와서 확장(상속)
          "item_selected_image@common.slot_selected": {
            // 겹치는 순서(숫자 클수록 위)
            "layer": 4
          }
        },
        {
          // 다른 템플릿을 가져와서 확장(상속)
          "item_button_ref@$button_ref": {
            // ?? ??
            "tts_ignore_count": true,
            // ?? ??
            "tts_skip_message": true,
            // ?? ??
            "tts_inherit_siblings": true,
            // 겹치는 순서(숫자 클수록 위)
            "layer": 5
          }
        },
        {
          // 다른 템플릿을 가져와서 확장(상속)
          "container_item_lock_overlay@common.container_item_lock_overlay": {
            // 가로/세로 크기
            "size": "$item_renderer_size",
            // 기준점에서 이동하는 거리
            "offset": [ 1, 1 ],
            // 붙일 위치(어디에 놓을지)
            "anchor_to": "top_left",
            // 기준점(어디에서 시작할지)
            "anchor_from": "top_left",
            // 겹치는 순서(숫자 클수록 위)
            "layer": 6
          }
        },
        {
          // 다른 템플릿을 가져와서 확장(상속)
          "item_lock_cell_image@common.item_lock_cell_image": {
            // 겹치는 순서(숫자 클수록 위)
            "layer": 2
          }
        }
      ]
    },

    // 다른 템플릿을 가져와서 확장(상속)
    "attribute_add_button@scroll_image.add_button": {
        // 오버라이드 가능한 변수
        "$name|default": "Wind Magic",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "name_panel": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [ 140, "100%" ],
                    // 기준점에서 이동하는 거리
                    "offset": [ -5, 0 ],
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "left_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "right_middle",
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // ???/?? ??
                            "name": {
                                // 글자 표시
                                "type": "label",
                                // 기준점(어디에서 시작할지)
                                "anchor_from": "left_middle",
                                // 붙일 위치(어디에 놓을지)
                                "anchor_to": "left_middle",
                                // 보여줄 글자
                                "text": "$name"
                            }
                        },
                        {
                            // 보여줄 글자
                            "text": {
                                // 글자 표시
                                "type": "label",
                                // 보여줄 글자
                                "text": "[     >     ]",
                                // 기준점(어디에서 시작할지)
                                "anchor_from": "right_middle",
                                // 붙일 위치(어디에 놓을지)
                                "anchor_to": "right_middle"
                            }
                        }
                    ]
                }
            }
        ]
    },

    // ???/?? ??
    "item_name_panel": {
        // 글자 표시
        "type": "label",
        // 보여줄 글자
        "text": "#text",
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#hover_text",
                // 목록 데이터를 반복 연결
                "binding_type": "collection",
                // 목록 이름
                "binding_collection_name": "$item_collection_name"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "#hover_text",
                // 결과가 들어갈 속성
                "target_property_name": "#text"
            }
        ]
    },

    // ???/?? ??
    "highlight_add_panel": {
      // 패널: 다른 부품을 담는 바닥판
      "type": "panel",
      // 이 안에 들어가는 부품 목록
      "controls": [
        {
          // 다른 템플릿을 가져와서 확장(상속)
          "highlight@common.highlight_slot": {
            // 이 안에 들어가는 부품 목록
            "controls": [
              {
                // ???/?? ??
                "hover_text": {
                    // 특수 렌더러(그라디언트/플레이어 등)
                    "type": "custom",
                    // 커스텀 렌더러 종류
                    "renderer": "hover_text_renderer",
                    // ??? ?? ?
                    "allow_clipping": false,
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 20,
                    // 이 컨트롤 안에서 쓰는 임시 저장소
                    "property_bag": {
                        // ???/??? ?
                        "#hover_text": "Require 3 Lapis Lazuli"
                    }
                }
              }
            ],
            // 게임 값과 연결하는 규칙 목록
            "bindings": [
              {
                // 가져올 값 이름
                "binding_name": "#show_persistent_bundle_hover_text",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#visible"
              }
            ]
          }
        },
        {
          // 다른 템플릿을 가져와서 확장(상속)
          "white_border@common.white_border_slot": {
            // 게임 값과 연결하는 규칙 목록
            "bindings": [
              {
                // 가져올 값 이름
                "binding_name": "#show_persistent_bundle_hover_text",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#visible"
              }
            ]
          }
        }
      ]
    },

    // ???/?? ??
    "highlight_transform": {
      // 패널: 다른 부품을 담는 바닥판
      "type": "panel",
      // 이 안에 들어가는 부품 목록
      "controls": [
        {
          // 다른 템플릿을 가져와서 확장(상속)
          "highlight@common.highlight_slot": {
            // 이 안에 들어가는 부품 목록
            "controls": [
              {
                // 다른 템플릿을 가져와서 확장(상속)
                "hover_text@common.hover_text": {
                  // 겹치는 순서(숫자 클수록 위)
                  "layer": 29,
                  // 오버라이드 가능한 변수
                  "$hover_text_binding_name|default": "#hover_text",
                  // 게임 값과 연결하는 규칙 목록
                  "bindings": [
                    {
                      // 가져올 값 이름
                      "binding_name": "$hover_text_binding_name",
                      // 가져온 값을 다른 속성으로 연결
                      "binding_name_override": "#hover_text",
                      // 목록 데이터를 반복 연결
                      "binding_type": "collection",
                      // 목록 이름
                      "binding_collection_name": "$item_collection_name"
                    },
                    {
                        // 계산/조건 결과를 연결
                        "binding_type": "view",
                        // 계산식/참조 값
                        "source_property_name": "((#hover_text - 'UNLISTED' = #hover_text))",
                        // 결과가 들어갈 속성
                        "target_property_name": "#visible"
                    }
                  ]
                }
              }
            ],
            // 게임 값과 연결하는 규칙 목록
            "bindings": [
              {
                // 가져올 값 이름
                "binding_name": "#show_persistent_bundle_hover_text",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#visible"
              }
            ]
          }
        },
        {
          // 다른 템플릿을 가져와서 확장(상속)
          "white_border@common.white_border_slot": {
            // 게임 값과 연결하는 규칙 목록
            "bindings": [
              {
                // 가져올 값 이름
                "binding_name": "#show_persistent_bundle_hover_text",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#visible"
              }
            ]
          }
        }
      ]
    },

    // ???/?? ??
    "transform_spell": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [ 180, 20 ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_container@scroll_image.black_cell_image": {
                    // 가로/세로 크기
                    "size": [ 20, 20 ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "item@common.item_renderer": {
                                // 가로/세로 크기
                                "size": [ 16, 16 ]
                            }
                        }
                    ],
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": -5,
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "right_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "right_middle"
                }
            },
            {
                // ???/?? ??
                "name_panel": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [ 90, 20 ],
                    // 기준점에서 이동하는 거리
                    "offset": [ -23, 0 ],
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "right_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "right_middle",
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // ???/?? ??
                            "item_name_panel": {
                                // 글자 표시
                                "type": "label",
                                // 보여줄 글자
                                "text": "#text",
                                // ?? ?? ?
                                "max_size": [ 90, 20 ],
                                // 기준점(어디에서 시작할지)
                                "anchor_from": "left_middle",
                                // 붙일 위치(어디에 놓을지)
                                "anchor_to": "left_middle",
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#hover_text",
                                        // 목록 데이터를 반복 연결
                                        "binding_type": "collection",
                                        // 목록 이름
                                        "binding_collection_name": "$item_collection_name"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "('%.35s' * #hover_text) - '  '",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#text"
                                    }
                                ]
                            }
                        }
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 가져올 값 이름
                            "binding_name": "#hover_text",
                            // 목록 데이터를 반복 연결
                            "binding_type": "collection",
                            // 목록 이름
                            "binding_collection_name": "$item_collection_name"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "((#hover_text - 'UNLISTED' = #hover_text))",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            }
        ]
    },

    // ???/?? ??
    "template": {
        // 이미지 표시
        "type": "image",
        // ???
        "alpha": 1.0,
        // 사용할 이미지 경로
        "texture": "#texture",
        // 가로/세로 크기
        "size": [ 16, 16 ],
        // ??? ?? ?
        "allow_debug_missing_texture": false,
        // 겹치는 순서(숫자 클수록 위)
        "layer": 6,
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#hover_text",
                // 목록 데이터를 반복 연결
                "binding_type": "collection",
                // 목록 이름
                "binding_collection_name": "$item_collection_name"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 목록 이름
                "binding_collection_name": "$item_collection_name",
                // 계산식/참조 값
                "source_property_name": "('textures/ui/magic_list/' + ((#hover_text - ('%.6s' * #hover_text)) - '§r') + '')",
                // 결과가 들어갈 속성
                "target_property_name": "#texture"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "((#hover_text - 'undefined' = #hover_text))",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ]
    }
}

server_form.json MagicWay UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: server_form.json
// 분류: MagicWay UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "server_form",

  // ???/?? ??
  "main_screen_content": {
		// ?? ?? ??
		"modifications": [
			{
				// ?? ?? ??
				"array_name": "controls",
				// ?? ??
				"operation": "insert_front",
				// ??? ?
				"value": [
					{
            // ???/?? ??
            "server_form_factory": {
              // 리스트를 자동으로 생성하는 공장
              "type": "factory",
              // 팩토리 템플릿 매핑
              "control_ids": {
                // ?? ??
                "long_form": "@a_magic_way_custom_panel.long_form_replacement"
              }
            }
          }
        ]
      }
    ]
  },
  // ???/?? ??
  "long_form": {
    // ?? ?? ??
    "modifications": [
      {
        // ?? ?? ??
        "array_name": "bindings",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          {
            // 계산/조건 결과를 연결
            "binding_type": "view",
            // ?? ??
            "source_control_name": "inside_header_panel",
            // 계산식/참조 값
            "source_property_name": "#stored_text",
            // 결과가 들어갈 속성
            "target_property_name": "#visible"
          }
        ]
      }
    ]
  },
  // ???/?? ??
  "long_form_panel": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#form_text - 'menu.invisible') = #form_text)",
        // 결과가 들어갈 속성
        "target_property_name": "#stored_text"
      }
    ]
  }
}

spell_binding_table_screen.json MagicWay UI · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: spell_binding_table_screen.json
// 분류: MagicWay UI / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "spell_binding_table",

    // 다른 템플릿을 가져와서 확장(상속)
    "spell_item@common.container_item": {
        // 오버라이드 가능한 변수
        "$background_images": "scroll_image.black_cell_image",
        // 오버라이드 가능한 변수
        "$item_renderer": "scroll_image.empty"
    },

    // ???/?? ??
    "spell_render": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [ 18, 18 ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "image@scroll_image.template": {}
            },
            {
                // ???/?? ??
                "locked": {
                    // 이미지 표시
                    "type": "image",
                    // 사용할 이미지 경로
                    "texture": "textures/ui/magic_lock",
                    // 가로/세로 크기
                    "size": [ 16, 16 ],
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 6,
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 가져올 값 이름
                            "binding_name": "#hover_text",
                            // 목록 데이터를 반복 연결
                            "binding_type": "collection",
                            // 목록 이름
                            "binding_collection_name": "$item_collection_name"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(not(#hover_text - 'locked' = #hover_text))",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ]
                }
            }
        ]
    },

    // ???/?? ??
    "spell_binding_table_input": {
        // 데이터 목록을 반복 배치
        "type": "collection_panel",
        // 기준점(어디에서 시작할지)
        "anchor_from": "center",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "center",
        // 가로/세로 크기
        "size": [ 0, 0 ],

        // 목록 이름
        "collection_name": "container_items",
        // 오버라이드 가능한 변수
        "$item_collection_name": "container_items",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_0@common.container_item": {
                    // 기준점에서 이동하는 거리
                    "offset": [ -15, -25 ],
                    // 오버라이드 가능한 변수
                    "$cell_overlay_ref": "scroll_image.spell_book_overlay",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "$item_collection_name"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#item_id_aux",
                            // 목록 데이터를 반복 연결
                            "binding_type": "collection",
                            // 목록 이름
                            "binding_collection_name": "$item_collection_name",
                            // ?? ???
                            "binding_condition": "none"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(not (#item_id_aux > 0))",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ],
                    // ?? ??
                    "collection_index": 0
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_0@common.container_item": {
                    // 기준점에서 이동하는 거리
                    "offset": [ -15, -25 ],
                    // 오버라이드 가능한 변수
                    "$cell_overlay_ref": "scroll_image.spell_book_overlay",
                    // 오버라이드 가능한 변수
                    "$button_ref": "magic_reinforcement_table.button_prototype",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "$item_collection_name"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#item_id_aux",
                            // 목록 데이터를 반복 연결
                            "binding_type": "collection",
                            // 목록 이름
                            "binding_collection_name": "$item_collection_name",
                            // ?? ???
                            "binding_condition": "none"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#item_id_aux > 0)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ],
                    // ?? ??
                    "collection_index": 0
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_1@common.container_item": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 15, -25 ],
                    // 오버라이드 가능한 변수
                    "$cell_overlay_ref": "scroll_image.scroll_overlay",
                    // ?? ??
                    "collection_index": 1
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_2@spell_binding_table.spell_item": {
                    // 기준점에서 이동하는 거리
                    "offset": [ -72, 10 ],
                    // ?? ??
                    "collection_index": 2
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_3@spell_binding_table.spell_item": {
                    // 기준점에서 이동하는 거리
                    "offset": [ -54, 10 ],
                    // ?? ??
                    "collection_index": 3
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_4@spell_binding_table.spell_item": {
                    // 기준점에서 이동하는 거리
                    "offset": [ -36, 10 ],
                    // ?? ??
                    "collection_index": 4
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_5@spell_binding_table.spell_item": {
                    // 기준점에서 이동하는 거리
                    "offset": [ -18, 10 ],
                    // ?? ??
                    "collection_index": 5
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_6@spell_binding_table.spell_item": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 0, 10 ],
                    // ?? ??
                    "collection_index": 6
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_7@spell_binding_table.spell_item": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 18, 10 ],
                    // ?? ??
                    "collection_index": 7
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_8@spell_binding_table.spell_item": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 36, 10 ],
                    // ?? ??
                    "collection_index": 8
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_9@spell_binding_table.spell_item": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 54, 10 ],
                    // ?? ??
                    "collection_index": 9
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_10@spell_binding_table.spell_item": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 72, 10 ],
                    // ?? ??
                    "collection_index": 10
                }
            },
            {
                // ???/?? ??
                "item_11": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [ 160, 156 ],
                    // 기준점에서 이동하는 거리
                    "offset": [ -175, 28 ],
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 2,
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "text@scroll_image.item_name_panel": {
                                // 가로/세로 크기
                                "size": [ 160, 156 ]
                            }
                        }
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "container_items"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#collection_index",
                            // 목록 인덱스/현재 항목 정보 제공
                            "binding_type": "collection_details",
                            // 목록 이름
                            "binding_collection_name": "container_items"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // ?? ??
                            "source_control_name": "spell_toggle",
                            // 계산식/참조 값
                            "source_property_name": "#toggle_state",
                            // 결과가 들어갈 속성
                            "target_property_name": "#toggle_state"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "#toggle_state",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ],
                    // ?? ??
                    "collection_index": 11
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_12@spell_binding_table.spell_render": {
                    // 기준점에서 이동하는 거리
                    "offset": [ -72, 10 ],
                    // ?? ??
                    "collection_index": 12
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_13@spell_binding_table.spell_render": {
                    // 기준점에서 이동하는 거리
                    "offset": [ -54, 10 ],
                    // ?? ??
                    "collection_index": 13
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_14@spell_binding_table.spell_render": {
                    // 기준점에서 이동하는 거리
                    "offset": [ -36, 10 ],
                    // ?? ??
                    "collection_index": 14
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_15@spell_binding_table.spell_render": {
                    // 기준점에서 이동하는 거리
                    "offset": [ -18, 10 ],
                    // ?? ??
                    "collection_index": 15
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_16@spell_binding_table.spell_render": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 0, 10 ],
                    // ?? ??
                    "collection_index": 16
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_17@spell_binding_table.spell_render": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 18, 10 ],
                    // ?? ??
                    "collection_index": 17
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_18@spell_binding_table.spell_render": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 36, 10 ],
                    // ?? ??
                    "collection_index": 18
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_19@spell_binding_table.spell_render": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 54, 10 ],
                    // ?? ??
                    "collection_index": 19
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "item_20@spell_binding_table.spell_render": {
                    // 기준점에서 이동하는 거리
                    "offset": [ 72, 10 ],
                    // ?? ??
                    "collection_index": 20
                }
            }
        ]
    },

    // ???/?? ??
    "layout_toggle_content": {
        // 이미지 표시
        "type": "image",
        // 기준점에서 이동하는 거리
        "offset": [ 0, -1 ],
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "top_middle",
        // 기준점(어디에서 시작할지)
        "anchor_from": "top_middle",
        // 사용할 이미지 경로
        "texture": "$icon",
        // 가로/세로 크기
        "size": [ 19, 13 ],
        // 겹치는 순서(숫자 클수록 위)
        "layer": 1
    },

    // ???/?? ??
    "toolbar": {
        // 이미지 표시
        "type": "image",
        // 사용할 이미지 경로
        "texture": "textures/ui/toolbar_background",
        // 가로/세로 크기
        "size": [
            "100%cm + 17px",
            26
        ],
        // 기준점에서 이동하는 거리
        "offset": [ 0, 3 ],
        // 기준점(어디에서 시작할지)
        "anchor_from": "top_right",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "bottom_right",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "inner": {
                    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                    "type": "stack_panel",
                    // 쌓는 방향(가로/세로)
                    "orientation": "horizontal",
                    // 가로/세로 크기
                    "size": [
                        "100%c",
                        18
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "spell_description@common_toggles.light_image_toggle": {
                                // 오버라이드 가능한 변수
                                "$toggle_view_binding_name": "spell_toggle",
                                // 오버라이드 가능한 변수
                                "$icon": "textures/ui/spell_description",
                                // 오버라이드 가능한 변수
                                "$button_content": "spell_binding_table.layout_toggle_content",
                                // 오버라이드 가능한 변수
                                "$toggle_name": "layout_toggle",
                                // 오버라이드 가능한 변수
                                "$button_mappings": [
                                  {
                                    // 어떤 입력을 받을지
                                    "from_button_id": "button.menu_select",
                                    // 어떤 동작을 실행할지
                                    "to_button_id": "button.menu_select",
                                    // 입력 시점(pressed 등)
                                    "mapping_type": "pressed"
                                  },
                                  {
                                    // 어떤 입력을 받을지
                                    "from_button_id": "button.menu_ok",
                                    // 어떤 동작을 실행할지
                                    "to_button_id": "button.menu_ok",
                                    // 입력 시점(pressed 등)
                                    "mapping_type": "focused"
                                  },
                                  {
                                    // 어떤 입력을 받을지
                                    "from_button_id": "button.menu_tab_left",
                                    // 어떤 동작을 실행할지
                                    "to_button_id": "button.spell_toggle",
                                    // 입력 시점(pressed 등)
                                    "mapping_type": "global"
                                  }
                                ],
                                // 가로/세로 크기
                                "size": [ 25, 18 ]
                            }
                        },
                        {
                            // ???/?? ??
                            "space": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 2, 0 ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#close_button_visible",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "close_button_panel": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [ 15, "100%" ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#close_button_visible",
                                        // 가져온 값을 다른 속성으로 연결
                                        "binding_name_override": "#visible"
                                    }
                                ],
                                // 이 안에 들어가는 부품 목록
                                "controls": [
                                    {
                                        // 다른 템플릿을 가져와서 확장(상속)
                                        "close_button@common.light_close_button": {
                                            // 기준점에서 이동하는 거리
                                            "offset": [ 0, 0 ],
                                            // 기준점(어디에서 시작할지)
                                            "anchor_from": "center",
                                            // 붙일 위치(어디에 놓을지)
                                            "anchor_to": "center"
                                        }
                                    }
                                ]
                            }
                        }
                    ]
                }
            },
            {
                // ???/?? ??
                "helper": {
                    // 이미지 표시
                    "type": "image",
                    // 사용할 이미지 경로
                    "texture": "textures/ui/generic_bumper_left",
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "left_middle",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "right_middle",
                    // 가로/세로 크기
                    "size": [ 26, 26 ],
                    // 기준점에서 이동하는 거리
                    "offset": [ -1, 0 ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 가져올 값 이름
                            "binding_name": "(#is_using_gamepad)",
                            // 가져온 값을 다른 속성으로 연결
                            "binding_name_override": "#visible"
                        }
                    ]
                }
            }
        ]
    },

    // ???/?? ??
    "spell_binding_table_panel": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 이 안에 들어가는 부품 목록
        "controls": [
            { "container_gamepad_helpers@common.container_gamepad_helpers": {} },
            { "selected_item_details_factory@common.selected_item_details_factory": {} },
            { "item_lock_notification_factory@common.item_lock_notification_factory": {} },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "root_panel@common.root_panel": {
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 1,
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // ???/?? ??
                            "all_panel": {
                                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                "type": "stack_panel",
                                // 가로/세로 크기
                                "size": [
                                    "100%c",
                                    "166px"
                                ],
                                // 쌓는 방향(가로/세로)
                                "orientation": "horizontal",
                                // 이 안에 들어가는 부품 목록
                                "controls": [
                                    {
                                        // 다른 템플릿을 가져와서 확장(상속)
                                        "spell_book_panel@scroll_image.grey_border": {
                                            // 가로/세로 크기
                                            "size": [ 170, 166 ],
                                            // 게임 값과 연결하는 규칙 목록
                                            "bindings": [
                                                {
                                                    // 계산/조건 결과를 연결
                                                    "binding_type": "view",
                                                    // ?? ??
                                                    "source_control_name": "spell_toggle",
                                                    // 계산식/참조 값
                                                    "source_property_name": "#toggle_state",
                                                    // 결과가 들어갈 속성
                                                    "target_property_name": "#visible"
                                                }
                                            ]
                                        }
                                    },
                                    {
                                        // ???/?? ??
                                        "space": {
                                            // 패널: 다른 부품을 담는 바닥판
                                            "type": "panel",
                                            // 가로/세로 크기
                                            "size": [ 2, 166 ],
                                            // 게임 값과 연결하는 규칙 목록
                                            "bindings": [
                                                {
                                                    // 계산/조건 결과를 연결
                                                    "binding_type": "view",
                                                    // ?? ??
                                                    "source_control_name": "spell_toggle",
                                                    // 계산식/참조 값
                                                    "source_property_name": "#toggle_state",
                                                    // 결과가 들어갈 속성
                                                    "target_property_name": "#visible"
                                                }
                                            ]
                                        }
                                    },
                                    {
                                        // ???/?? ??
                                        "main_panel": {
                                            // 패널: 다른 부품을 담는 바닥판
                                            "type": "panel",
                                            // 가로/세로 크기
                                            "size": [ 177, 166 ],
                                            // 이 안에 들어가는 부품 목록
                                            "controls": [
                                                {
                                                    // 다른 템플릿을 가져와서 확장(상속)
                                                    "toolbar@spell_binding_table.toolbar": {
                                                    }
                                                },
                                                {
                                                    // 다른 템플릿을 가져와서 확장(상속)
                                                    "common_panel@common.common_panel": {
                                                        // 오버라이드 가능한 변수
                                                        "$show_close_button": false
                                                    }
                                                },
                                                {
                                                    // ???/?? ??
                                                    "chest_panel": {
                                                        // 패널: 다른 부품을 담는 바닥판
                                                        "type": "panel",
                                                        // 겹치는 순서(숫자 클수록 위)
                                                        "layer": 5,
                                                        // 이 안에 들어가는 부품 목록
                                                        "controls": [
                                                            {
                                                                // ???/?? ??
                                                                "small_chest_panel_top_half": {
                                                                    // 패널: 다른 부품을 담는 바닥판
                                                                    "type": "panel",
                                                                    // 가로/세로 크기
                                                                    "size": [ "100%", "50%" ],
                                                                    // 기준점에서 이동하는 거리
                                                                    "offset": [ 0, 12 ],
                                                                    // 붙일 위치(어디에 놓을지)
                                                                    "anchor_to": "top_middle",
                                                                    // 기준점(어디에서 시작할지)
                                                                    "anchor_from": "top_middle",
                                                                    // 이 안에 들어가는 부품 목록
                                                                    "controls": [
                                                                        {
                                                                            // ???/?? ??
                                                                            "chest_label": {
                                                                                // 글자 표시
                                                                                "type": "label",
                                                                                // 기준점에서 이동하는 거리
                                                                                "offset": [ 0, -5 ],
                                                                                // 기준점(어디에서 시작할지)
                                                                                "anchor_from": "top_middle",
                                                                                // 붙일 위치(어디에 놓을지)
                                                                                "anchor_to": "top_middle",
                                                                                // 보여줄 글자
                                                                                "text": "주문 결속대",
                                                                                // ?? (R,G,B,A)
                                                                                "color": "$title_text_color",
                                                                                // 겹치는 순서(숫자 클수록 위)
                                                                                "layer": 2
                                                                            }
                                                                        },
                                                                        {
                                                                            // 다른 템플릿을 가져와서 확장(상속)
                                                                            "spell_binding_table_input@spell_binding_table.spell_binding_table_input": {
                                                                            }
                                                                        },
                                                                        {
                                                                            // ???/?? ??
                                                                            "black_border": {
                                                                                // 이미지 표시
                                                                                "type": "image",
                                                                                // 사용할 이미지 경로
                                                                                "texture": "textures/ui/background_with_border",
                                                                                // 겹치는 순서(숫자 클수록 위)
                                                                                "layer": 1,
                                                                                // 기준점에서 이동하는 거리
                                                                                "offset": [ 0, 10 ],
                                                                                // 가로/세로 크기
                                                                                "size": [ 168, 24 ]
                                                                            }
                                                                        },
                                                                        {
                                                                            // ???/?? ??
                                                                            "item_cell_bridge": {
                                                                                // 이미지 표시
                                                                                "type": "image",
                                                                                // 사용할 이미지 경로
                                                                                "texture": "textures/ui/item_cell_bridge",
                                                                                // 겹치는 순서(숫자 클수록 위)
                                                                                "layer": 5,
                                                                                // 기준점에서 이동하는 거리
                                                                                "offset": [ 0, -25 ],
                                                                                // 가로/세로 크기
                                                                                "size": [ 14, 6 ]
                                                                            }
                                                                        }
                                                                    ]
                                                                }
                                                            },
                                                            { "inventory_panel_bottom_half_with_label@common.inventory_panel_bottom_half_with_label": {} },
                                                            { "hotbar_grid@common.hotbar_grid_template": {} },
                                                            { "inventory_take_progress_icon_button@common.inventory_take_progress_icon_button": {} },
                                                            { "flying_item_renderer@common.flying_item_renderer": { "layer": 15 } }
                                                        ]
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                ]
                            }
                        },
                        { "inventory_selected_icon_button@common.inventory_selected_icon_button": {} },
                        { "gamepad_cursor@common.gamepad_cursor_button": {} }
                    ]
                }
            }
        ]
    }
}

StarLib 20 개

기본

server_form (1).jsonc StarLib · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: server_form (1).jsonc
// 분류: StarLib / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 MatrixUI example | by pipa_ngry
//   Use it only for educational purposes!
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "server_form",
    // 다른 템플릿을 가져와서 확장(상속)
    "third_party_server_screen@common.base_screen": {
        // 오버라이드 가능한 변수
        "$screen_content": "server_form.server_form",
        // 입력 키/버튼과 동작 연결
        "button_mappings": [
            {
                // 어떤 입력을 받을지
                "from_button_id": "button.menu_cancel",
                // 어떤 동작을 실행할지
                "to_button_id": "button.menu_exit",
                // 입력 시점(pressed 등)
                "mapping_type": "global"
            }
        ]
    },
    // ???/?? ??
    "server_form": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%"
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "server_form_factory": {
                    // 리스트를 자동으로 생성하는 공장
                    "type": "factory",
                    // 팩토리 템플릿 매핑
                    "control_ids": {
                        // ?? ??
                        "long_form": "@server_form.long_form",
                        // ?? ??
                        "custom_form": "@server_form.custom_form"
                    }
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "long_form@starlib_pkg_screen_template.screen": {
        // 오버라이드 가능한 변수
        "$SCREEN_TEMPLATE_fade_enabled": true,
        // 오버라이드 가능한 변수
        "$SCREEN_TEMPLATE_fade_alpha": 0.4,

        // 오버라이드 가능한 변수
        "$HEADER_TEMPLATE_style_control": "global.empty_panel",
        // 오버라이드 가능한 변수
        "$HEADER_TEMPLATE_title_control": "server_form.title",
        // 오버라이드 가능한 변수
        "$HEADER_TEMPLATE_contents_size": [
            "100% - 46px",
            "100%"
        ],
        // 오버라이드 가능한 변수
        "$HEADER_TEMPLATE_close_button_control": "server_form.close_button",

        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_form_background_texture": "textures/matrix/background",
        // 오버라이드 가능한 변수
        "$form_size": [
            350,
            235
        ],
        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_content_size": [
            "100% - 32px",
            "100% - 30px"
        ],
        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_content_offset": [
            0,
            -10
        ],

        // 오버라이드 가능한 변수
        "$SCROLLING_CONTENT_additional_content_margins_size": [
            0,
            1
        ],
        // 오버라이드 가능한 변수
        "$SCROLLING_CONTENT_main_control": "global.grid",
        // 오버라이드 가능한 변수
        "$grid_item": "starlib_pkg_button_templates.grid_item_template",

        // 오버라이드 가능한 변수
        "$GRID_ITEM_root_control": "starlib_pkg_button_templates.big_button",
        // 오버라이드 가능한 변수
        "$GRID_ITEM_size": [
            "25%",
            "100%x"
        ],
        // 오버라이드 가능한 변수
        "$GRID_ITEM_root_size": [
            "100% - 4px",
            "100% - 4px"
        ],

        // 오버라이드 가능한 변수
        "$BIG_BUTTON_image_overlap_control": "server_form.gradient",
        // 오버라이드 가능한 변수
        "$BIG_BUTTON_content_control": "server_form.button_content",
        // 오버라이드 가능한 변수
        "$BIG_BUTTON_content_size": [
            "100% - 6px",
            "100% - 6px"
        ],
        // 오버라이드 가능한 변수
        "$BIG_BUTTON_image_size": [
            "100% - 8px",
            "100% - 8px"
        ],
        // 오버라이드 가능한 변수
        "$BIG_BUTTON_overlap_size": [
            "100% - 2px",
            "100% - 2px"
        ],

        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_hover_control": "server_form.button_hover",
        // 오버라이드 가능한 변수
        "$BUTTON_STYLE_default_texture": "textures/matrix/button"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "gradient@style.image": {
        // 사용할 이미지 경로
        "texture": "textures/matrix/gradient",
        // ???
        "alpha": 0.5
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "button_hover@style.image": {
        // 사용할 이미지 경로
        "texture": "textures/matrix/button_hover"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "title@starlib_pkg_screen_common.title_template": {
        // ?? ??
        "text_alignment": "left",
        // ??
        "font_type": "MinecraftTen",
        // ?? (R,G,B,A)
        "color": [
            0,
            -235,
            -103
        ],
        // ?? ?? ??
        "font_scale_factor": 1.3
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "button_content@starlib_pkg_button_templates.common_big_button_content": {
        // ?? (R,G,B,A)
        "color": [
            0,
            -235,
            -103
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "close_button@starlib_pkg_screen_common.close_button_template": {
        // 기준점(어디에서 시작할지)
        "anchor_from": "right_middle",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "right_middle",
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_default_control": "server_form.close_button_default",
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_hover_control": "server_form.close_button_hover",
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_pressed_control": "server_form.close_button_hover",
        // 기준점에서 이동하는 거리
        "offset": [
            2,
            2
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "close_button_default@style.image": {
        // 사용할 이미지 경로
        "texture": "textures/matrix/close_button"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "close_button_hover@style.image": {
        // 사용할 이미지 경로
        "texture": "textures/matrix/close_button_hover"
    }
}

server_form (2).jsonc StarLib · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: server_form (2).jsonc
// 분류: StarLib / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 MultiForm example | by pipa_ngry
//   Use it only for educational purposes!
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "server_form",
    // 다른 템플릿을 가져와서 확장(상속)
    "third_party_server_screen@common.base_screen": {
        // 오버라이드 가능한 변수
        "$screen_content": "server_form.server_form",
        // 입력 키/버튼과 동작 연결
        "button_mappings": [
            {
                // 어떤 입력을 받을지
                "from_button_id": "button.menu_cancel",
                // 어떤 동작을 실행할지
                "to_button_id": "button.menu_exit",
                // 입력 시점(pressed 등)
                "mapping_type": "global"
            }
        ]
    },
    // ???/?? ??
    "server_form": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%"
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "server_form_factory": {
                    // 리스트를 자동으로 생성하는 공장
                    "type": "factory",
                    // 팩토리 템플릿 매핑
                    "control_ids": {
                        // ?? ??
                        "long_form": "@server_form.long_form",
                        // ?? ??
                        "custom_form": "@server_form.custom_form"
                    }
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "long_form@starlib_pkg_screen_template.screen": {
        // 오버라이드 가능한 변수
        "$SCREEN_TEMPLATE_fade_enabled": true,

        // 오버라이드 가능한 변수
        "$HEADER_TEMPLATE_style_control": "server_form.header",
        // 오버라이드 가능한 변수
        "$HEADER_TEMPLATE_close_button_control": "global.empty_panel",

        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_size": [
            "100%",
            18
        ],
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_text_enabled": true,
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_default_control": "server_form.close_button",
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_hover_control": "server_form.hover",
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_pressed_control": "server_form.hover",
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_text_offset": [
            0,
            -2
        ],

        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_appear_sub_contents_padding": true,
        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_appear_header_padding": false,
        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_sub_content_control": "starlib_pkg_screen_common.async_close_button",
        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_background_texture": "textures/multiform/background",
        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_between_contents_padding_size": [
            0,
            1
        ],
        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_content_size": [
            "100% - 14px",
            "100% - 14px"
        ],

        // 오버라이드 가능한 변수
        "$BUTTON_STYLE_default_texture": "textures/multiform/button",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_hover_control": "server_form.hover",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_pressed_control": "server_form.hover",

        // 오버라이드 가능한 변수
        "$forms_holder_controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "form@global.reverse_title_binding": {
                    // 오버라이드 가능한 변수
                    "$form_size": [
                        280,
                        225
                    ],
                    // 오버라이드 가능한 변수
                    "$SCROLLING_CONTENT_form_text_control": "server_form.form_text",
                    // 오버라이드 가능한 변수
                    "$button_item_control": "starlib_pkg_button_templates.horizontal_button_template",
                    // 오버라이드 가능한 변수
                    "$BORDERED_BUTTON_background_control": "global.empty_panel",
                    // 오버라이드 가능한 변수
                    "$SCROLLING_CONTENT_additional_content_margins_size": [
                        0,
                        1
                    ],
                    // 오버라이드 가능한 변수
                    "$key": "§f§0§0",
                    // 오버라이드 가능한 변수
                    "$control": "starlib_pkg_screen_template.form_template",
                    // 가로/세로 크기
                    "size": [
                        "100%c",
                        "100%c"
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "form@global.title_binding": {
                    // 오버라이드 가능한 변수
                    "$form_size": [
                        340,
                        235
                    ],
                    // 오버라이드 가능한 변수
                    "$scrolling_content": "server_form.buttons_grid",
                    // 오버라이드 가능한 변수
                    "$COMMON_PAPERDOLL_size": [
                        "33.3%",
                        "100%"
                    ],
                    // 오버라이드 가능한 변수
                    "$COMMON_PAPERDOLL_background_texture": "textures/multiform/paperdoll_background",
                    // 오버라이드 가능한 변수
                    "$PAPERDOLL_offset": [
                        0,
                        -30
                    ],
                    // 오버라이드 가능한 변수
                    "$CONTENT_enable_paperdoll": true,
                    // 오버라이드 가능한 변수
                    "$CONTENT_between_contents_padding_size": [
                        5,
                        0
                    ],
                    // 오버라이드 가능한 변수
                    "$CUBIC_BUTTON_image_size": [
                        "100% - 16px",
                        "100% - 16px"
                    ],
                    // 오버라이드 가능한 변수
                    "$CUBIC_BUTTON_bottom_padding_size": [
                        0,
                        3
                    ],
                    // 오버라이드 가능한 변수
                    "$key": "§f§0§0",
                    // 오버라이드 가능한 변수
                    "$control": "starlib_pkg_screen_template.form_template",
                    // 가로/세로 크기
                    "size": [
                        "100%c",
                        "100%c"
                    ]
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "buttons_grid@global.grid": {
        // 오버라이드 가능한 변수
        "$grid_item": "server_form.grid_button"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "grid_button@starlib_pkg_button_templates.grid_item_template": {
        // 오버라이드 가능한 변수
        "$GRID_ITEM_root_control": "starlib_pkg_button_templates.cubic_button",
        // 오버라이드 가능한 변수
        "$GRID_ITEM_size": [
            "33.3%",
            96
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "header@style.image": {
        // 사용할 이미지 경로
        "texture": "textures/multiform/header"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "close_button@style.image": {
        // 사용할 이미지 경로
        "texture": "textures/multiform/close_button"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "hover@style.image": {
        // 사용할 이미지 경로
        "texture": "textures/multiform/hover"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "form_text@starlib_pkg_screen_common.form_text_template": {
        // 가로/세로 크기
        "size": [
            "100% - 2px",
            "default"
        ]
    }
}

server_form (3).jsonc StarLib · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: server_form (3).jsonc
// 분류: StarLib / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 NutUI V2 example | by pipa_ngry
//   Use it only for educational purposes!
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "server_form",
    // 다른 템플릿을 가져와서 확장(상속)
    "third_party_server_screen@common.base_screen": {
        // 오버라이드 가능한 변수
        "$screen_content": "server_form.server_form",
        // 입력 키/버튼과 동작 연결
        "button_mappings": [
            {
                // 어떤 입력을 받을지
                "from_button_id": "button.menu_cancel",
                // 어떤 동작을 실행할지
                "to_button_id": "button.menu_exit",
                // 입력 시점(pressed 등)
                "mapping_type": "global"
            }
        ]
    },
    // ???/?? ??
    "server_form": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%"
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "server_form_factory": {
                    // 리스트를 자동으로 생성하는 공장
                    "type": "factory",
                    // 팩토리 템플릿 매핑
                    "control_ids": {
                        // ?? ??
                        "long_form": "@server_form.long_form",
                        // ?? ??
                        "custom_form": "@server_form.custom_form"
                    }
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "long_form@starlib_pkg_screen_template.screen": {
        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_header_control": "starlib_pkg_dynamic_common.common_dynamic_header",
        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_background_texture": "textures/example/background",
        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_content_size": [
            "100% - 20px",
            "100% - 16px"
        ],
        // 오버라이드 가능한 변수
        "$HORIZONTAL_BUTTON_size": [
            "100% - 2px",
            "100% - 2px"
        ],
        // 오버라이드 가능한 변수
        "$DYNAMIC_HEADER_background_control": "style.black",
        // 오버라이드 가능한 변수
        "$DYNAMIC_HEADER_style_control": "server_form.header",
        // 오버라이드 가능한 변수
        "$DYNAMIC_HEADER_close_button_control": "server_form.close_button",
        // 오버라이드 가능한 변수
        "$DYNAMIC_HEADER_header_contents_control": "server_form.header_buttons_factory",

        // 오버라이드 가능한 변수
        "$button_item_control": "starlib_pkg_dynamic_structure.dynamic_item_template",

        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_hover_control": "server_form.hover",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_panel_control": "starlib_pkg_button_common.disabled_variable_button_panel",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_style_control": "starlib_pkg_button_style.disabled_variable_button_style",

        // 오버라이드 가능한 변수
        "$BUTTON_STYLE_disabled_variable_key": "§p§3§0",
        // 오버라이드 가능한 변수
        "$BUTTON_STYLE_default_variable_texture": "textures/example/button",
        // 오버라이드 가능한 변수
        "$BUTTON_STYLE_disabled_variable_texture": "textures/example/button_disabled",
        // 오버라이드 가능한 변수
        "$HORIZONTAL_BUTTON_image_background_texture": "textures/example/black",

        // 오버라이드 가능한 변수
        "$BUTTON_SIZER_left_third": "§p§1§1",
        // 오버라이드 가능한 변수
        "$BUTTON_SIZER_right_third": "§p§2§1",
        // 오버라이드 가능한 변수
        "$BUTTON_SIZER_left_half": "§p§1§2",
        // 오버라이드 가능한 변수
        "$BUTTON_SIZER_right_half": "§p§2§2",
        // 오버라이드 가능한 변수
        "$VERTICAL_PROCESSING_no_height_key": "§p§0§0",
        // 오버라이드 가능한 변수
        "$DYNAMIC_ITEM_entry": "starlib_pkg_dynamic_sizer.common_auto_sizer",
        // 오버라이드 가능한 변수
        "$VERTICAL_PROCESSING_output_control": "starlib_pkg_button_templates.horizontal_button_template",
        // 오버라이드 가능한 변수
        "$DYNAMIC_ITEM_bindings": [
            {
                // 목록 이름
                "binding_collection_name": "form_buttons",
                // 가져올 값 이름
                "binding_name": "#form_button_text",
                // 목록 데이터를 반복 연결
                "binding_type": "collection"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "((#form_button_text - '§p§4§0') = #form_button_text)",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "((#form_button_text - '§p§4§0') = #form_button_text)",
                // 결과가 들어갈 속성
                "target_property_name": "#enabled"
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "header_buttons_factory@global.button_factory": {
        // 쌓는 방향(가로/세로)
        "orientation": "horizontal",
        // 가로/세로 크기
        "size": [
            "100%c",
            "100%"
        ],
        // 오버라이드 가능한 변수
        "$factory_item": "server_form.header_button"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "header_button@global.binding": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 쌓는 방향(가로/세로)
        "orientation": "horizontal",
        // 가로/세로 크기
        "size": [
            "100%y + 1px",
            "100%"
        ],
        // 오버라이드 가능한 변수
        "$key": "§p§4§0",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_style_control": "starlib_pkg_button_style.common_button_style",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "button@starlib_pkg_button_templates.hover_button": {
                    // 오버라이드 가능한 변수
                    "$HOVER_BUTTON_size": [
                        "fill",
                        "100%"
                    ],
                    // 오버라이드 가능한 변수
                    "$BUTTON_STYLE_default_texture": "textures/example/header_button",
                    // 오버라이드 가능한 변수
                    "$HOVER_BUTTON_hover_control": "server_form.hover",
                    // 오버라이드 가능한 변수
                    "$HOVER_BUTTON_image_size": [
                        13,
                        13
                    ]
                }
            },
            {
                // ???/?? ??
                "padding": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [
                        1,
                        0
                    ]
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "header@style.image": {
        // 사용할 이미지 경로
        "texture": "textures/example/header"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "close_button@starlib_pkg_screen_common.async_close_button": {
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_size": [
            "100%y",
            "100%"
        ],
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_icon_size": [
            15,
            15
        ],
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_icon_texture": "textures/ui/close_button_default_light",
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_default_control": "server_form.close_button_default",
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_hover_control": "server_form.hover",
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_pressed_control": "server_form.hover"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "hover@style.image": {
        // 사용할 이미지 경로
        "texture": "textures/example/hover",
        // 가로/세로 크기
        "size": [
            "100% + 2px",
            "100% + 2px"
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "close_button_default@style.image": {
        // 사용할 이미지 경로
        "texture": "textures/example/close_button"
    }
}

server_form (4).jsonc StarLib · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: server_form (4).jsonc
// 분류: StarLib / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 BundleUI example | by pipa_ngry
//   Use it only for educational purposes!
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "server_form",
    // 다른 템플릿을 가져와서 확장(상속)
    "third_party_server_screen@common.base_screen": {
        // 오버라이드 가능한 변수
        "$screen_content": "server_form.server_form",
        // 입력 키/버튼과 동작 연결
        "button_mappings": [
            {
                // 어떤 입력을 받을지
                "from_button_id": "button.menu_cancel",
                // 어떤 동작을 실행할지
                "to_button_id": "button.menu_exit",
                // 입력 시점(pressed 등)
                "mapping_type": "global"
            }
        ]
    },
    // ???/?? ??
    "server_form": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%"
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "server_form_factory": {
                    // 리스트를 자동으로 생성하는 공장
                    "type": "factory",
                    // 팩토리 템플릿 매핑
                    "control_ids": {
                        // ?? ??
                        "long_form": "@server_form.long_form",
                        // ?? ??
                        "custom_form": "@server_form.custom_form"
                    }
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "long_form@starlib_pkg_screen_template.screen": {
        // 오버라이드 가능한 변수
        "$SCREEN_TEMPLATE_fade_enabled": true,
        // 오버라이드 가능한 변수
        "$SCREEN_TEMPLATE_fade_alpha": 0.5,

        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_background_texture": "textures/bundle/background",
        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_sub_content_control": "server_form.footer",
        // 오버라이드 가능한 변수
        "$form_size": [
            255,
            225
        ],
        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_content_size": [
            "100% - 28px",
            "100% - 9px"
        ],
        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_content_offset": [
            0,
            -1
        ],
        // 오버라이드 가능한 변수
        "$button_item_control": "server_form.advanced_dynamic_button",

        // 오버라이드 가능한 변수
        "$HEADER_TEMPLATE_style_control": "server_form.header",
        // 오버라이드 가능한 변수
        "$HEADER_TEMPLATE_close_button_control": "server_form.close_button",
        // 오버라이드 가능한 변수
        "$HEADER_TEMPLATE_title_control": "server_form.title",
        // 오버라이드 가능한 변수
        "$HEADER_TEMPLATE_size": [
            "100%",
            36
        ],
        // 오버라이드 가능한 변수
        "$HEADER_TEMPLATE_contents_size": [
            "100% - 20px",
            "100% - 8px"
        ],
        // 오버라이드 가능한 변수
        "$HEADER_TEMPLATE_contents_offset": [
            0,
            -2
        ],

        // 오버라이드 가능한 변수
        "$scroll_bar_left_padding_size": [
            1,
            0
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "header@style.image": {
        // 사용할 이미지 경로
        "texture": "textures/bundle/header"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "footer@style.image": {
        // 사용할 이미지 경로
        "texture": "textures/bundle/footer",
        // 가로/세로 크기
        "size": [
            "100%",
            24
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "close_button@starlib_pkg_screen_common.close_button_template": {
        // 기준점(어디에서 시작할지)
        "anchor_from": "right_middle",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "right_middle",
        // 기준점에서 이동하는 거리
        "offset": [
            1,
            -1
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "title@starlib_pkg_screen_common.title_template": {
        // ?? ??
        "text_alignment": "left"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "advanced_dynamic_button@starlib_pkg_dynamic_structure.dynamic_item_template": {
        // 오버라이드 가능한 변수
        "$DYNAMIC_ITEM_entry": "starlib_pkg_dynamic_sizer.common_auto_sizer",
        // 오버라이드 가능한 변수
        "$VERTICAL_PROCESSING_output_control": "server_form.advanced_button",
        // 오버라이드 가능한 변수
        "$VERTICAL_PROCESSING_no_height_key": "§m§0§0",
        // 오버라이드 가능한 변수
        "$VERTICAL_PROCESSING_sizer_template_control": "server_form.vertical_sizer",
        // 오버라이드 가능한 변수
        "$BUTTON_SIZER_left_third": "§m§1§0",
        // 오버라이드 가능한 변수
        "$BUTTON_SIZER_right_third": "§m§2§0",
        // 오버라이드 가능한 변수
        "$BUTTON_SIZER_left_half": "§m§1§1",
        // 오버라이드 가능한 변수
        "$BUTTON_SIZER_right_half": "§m§2§1"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "advanced_button@starlib_pkg_button_common.common_button": {
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_panel_control": "starlib_pkg_button_common.disabled_variable_button_panel",
        // 오버라이드 가능한 변수
        "$BUTTON_STYLE_disabled_variable_key": "§m§3§2",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_style_control": "starlib_pkg_button_style.disabled_variable_button_style",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_content_control": "starlib_pkg_dynamic_common.common_dynamic_button_content",
        // 오버라이드 가능한 변수
        "$DYNAMIC_CONTENT_switch_key": "§m§0§2",
        // 오버라이드 가능한 변수
        "$DYNAMIC_CONTENT_text_control": "server_form.text_content",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_hover_control": "server_form.hover",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_pressed_control": "server_form.hover",
        // 오버라이드 가능한 변수
        "$DYNAMIC_CONTENT_image_size": [
            "100% - 4px",
            "100% - 4px"
        ],
        // 가로/세로 크기
        "size": [
            "100% - 2px",
            "100% - 2px"
        ],
        // 오버라이드 가능한 변수
        "$BUTTON_STYLE_disabled_variable_texture": "textures/bundle/button/disabled/default",
        // 오버라이드 가능한 변수
        "$BUTTON_STYLE_default_variable_controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "default_default@starlib_pkg_button_style.reverse_style_variable": {
                    // 사용할 이미지 경로
                    "texture": "textures/bundle/button/default",
                    // 오버라이드 가능한 변수
                    "$key": "§m§3§1"
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "alt_default@starlib_pkg_button_style.style_variable": {
                    // 사용할 이미지 경로
                    "texture": "textures/bundle/button/alt",
                    // 오버라이드 가능한 변수
                    "$key": "§m§3§1"
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "hover@style.image": {
        // 사용할 이미지 경로
        "texture": "textures/bundle/button/hover/default",
        // 가로/세로 크기
        "size": [
            "100% - 2px",
            "100% - 2px"
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "vertical_sizer@starlib_pkg_dynamic_structure.vertical_sizer_template": {
        // 오버라이드 가능한 변수
        "$VERTICAL_SIZER_controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "size_default@global.reverse_binding": {
                    // 오버라이드 가능한 변수
                    "$key": "§m§0§1",
                    // 가로/세로 크기
                    "size": [
                        0,
                        30
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "size_custom@global.binding": {
                    // 오버라이드 가능한 변수
                    "$key": "§m§0§1",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "100%x"
                    ]
                }
            }
        ]
    },
    // ???/?? ??
    "text_content": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%c"
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "default@global.reverse_binding": {
                    // 오버라이드 가능한 변수
                    "$key": "§m§4§0",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "100%c"
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "button_text@starlib_pkg_button_common.button_text": {}
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "sided@global.binding": {
                    // 오버라이드 가능한 변수
                    "$key": "§m§4§0",
                    // 가로/세로 크기
                    "size": [
                        "100% - 8px",
                        "100%c"
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "button_text@starlib_pkg_button_common.button_text": {
                                // ??
                                "font_type": "MinecraftTen",
                                // ?? ??
                                "text_alignment": "left"
                            }
                        }
                    ]
                }
            }
        ]
    }
}

server_form.jsonc StarLib · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: server_form.jsonc
// 분류: StarLib / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 PeanutUI example | by pipa_ngry
//   Use it only for educational purposes!
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "server_form",
    // 다른 템플릿을 가져와서 확장(상속)
    "third_party_server_screen@common.base_screen": {
        // 오버라이드 가능한 변수
        "$screen_content": "server_form.server_form",
        // 입력 키/버튼과 동작 연결
        "button_mappings": [
            {
                // 어떤 입력을 받을지
                "from_button_id": "button.menu_cancel",
                // 어떤 동작을 실행할지
                "to_button_id": "button.menu_exit",
                // 입력 시점(pressed 등)
                "mapping_type": "global"
            }
        ]
    },
    // ???/?? ??
    "server_form": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%"
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "server_form_factory": {
                    // 리스트를 자동으로 생성하는 공장
                    "type": "factory",
                    // 팩토리 템플릿 매핑
                    "control_ids": {
                        // ?? ??
                        "long_form": "@server_form.long_form",
                        // ?? ??
                        "custom_form": "@server_form.custom_form"
                    }
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "long_form@starlib_pkg_screen_template.screen": {
        // 오버라이드 가능한 변수
        "$SCREEN_TEMPLATE_frame_enabled": true,
        // 오버라이드 가능한 변수
        "$HEADER_TEMPLATE_style_control": "server_form.header",
        // 오버라이드 가능한 변수
        "$HEADER_TEMPLATE_contents_offset": [
            0,
            -1
        ],
        // 오버라이드 가능한 변수
        "$FORM_TEMPLATE_background_texture": "textures/example_2/background",
        // 오버라이드 가능한 변수
        "$button_item_control": "starlib_pkg_button_templates.horizontal_button",
        // 오버라이드 가능한 변수
        "$HORIZONTAL_BUTTON_image_background_texture": "textures/example_2/image_background",
        // 오버라이드 가능한 변수
        "$BUTTON_STYLE_default_texture": "textures/example_2/button",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_hover_control": "server_form.hover"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "header@style.image": {
        // 사용할 이미지 경로
        "texture": "textures/example_2/header"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "hover@style.image": {
        // 사용할 이미지 경로
        "texture": "textures/example_2/border",
        // 가로/세로 크기
        "size": [
            "100% + 2px",
            "100% + 2px"
        ]
    }
}

StarLibV2-1.0.3.3

_ui_defs.json StarLib · StarLibV2-1.0.3.3

필요한 부분만 참고해서 가져가세요.

// 예제: _ui_defs.json
// 분류: StarLib / StarLibV2-1.0.3.3
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // ???/?? ??
    "ui_defs": [
      "ui/starlib2/global.jsonc",
      "ui/starlib2/style.jsonc",
      "ui/starlib2/package_screen/screen_template.jsonc",
      "ui/starlib2/package_screen/screen_common.jsonc",
      "ui/starlib2/package_button/common_button.jsonc",
      "ui/starlib2/package_button/button_templates.jsonc",
      "ui/starlib2/package_button/button_style.jsonc",
      "ui/starlib2/package_dynamic/common_dynamic.jsonc",
      "ui/starlib2/package_dynamic/dynamic_sizer.jsonc",
      "ui/starlib2/package_dynamic/dynamic_structure.jsonc",
      "ui/starlib2/package_custom/custom_toggles.jsonc",
      "ui/starlib2/package_custom/common_custom.jsonc",
      "ui/starlib2/package_custom/custom_edit_box.jsonc",
      "ui/starlib2/package_custom/custom_renders.jsonc"
    ]
  }

button_style.jsonc StarLib · StarLibV2-1.0.3.3

필요한 부분만 참고해서 가져가세요.

// 예제: button_style.jsonc
// 분류: StarLib / StarLibV2-1.0.3.3
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 by pipa_ngry
//   Please respect my work, don't pass at yours and use it for its intended purpose.
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "starlib_pkg_button_style",
    // ???/?? ??
    "common_button_style": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%"
        ],
        // 오버라이드 가능한 변수
        "$BUTTON_STYLE_default|default": "starlib_pkg_button_style.button_style_template",
        // 오버라이드 가능한 변수
        "$BUTTON_STYLE_default_texture|default": "textures/ui/Black",
        // 이 안에 들어가는 부품 목록
        "controls": "$BUTTON_STYLE_variables",
        // 오버라이드 가능한 변수
        "$BUTTON_STYLE_variables|default": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "default_default@$BUTTON_STYLE_default": {
                    // 사용할 이미지 경로
                    "texture": "$BUTTON_STYLE_default_texture"
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "button_style_template@style.image": {
        // 게임 값과 연결하는 규칙 목록
        "bindings": "$bindings",
        // 오버라이드 가능한 변수
        "$bindings|default": [],
        // 겹치는 순서(숫자 클수록 위)
        "layer": "$layer",
        // 오버라이드 가능한 변수
        "$layer|default": 24
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "style_variable@starlib_pkg_button_style.button_style_template": {
        // 오버라이드 가능한 변수
        "$key|default": "",
        // 오버라이드 가능한 변수
        "$bindings": [
            {
                // 목록 이름
                "binding_collection_name": "form_buttons",
                // 가져올 값 이름
                "binding_name": "#form_button_text",
                // 목록 데이터를 반복 연결
                "binding_type": "collection"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(not((#form_button_text - $key) = #form_button_text))",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(not((#form_button_text - $key) = #form_button_text))",
                // 결과가 들어갈 속성
                "target_property_name": "#enabled"
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "reverse_style_variable@starlib_pkg_button_style.button_style_template": {
        // 오버라이드 가능한 변수
        "$key|default": "",
        // 오버라이드 가능한 변수
        "$bindings": [
            {
                // 목록 이름
                "binding_collection_name": "form_buttons",
                // 가져올 값 이름
                "binding_name": "#form_button_text",
                // 목록 데이터를 반복 연결
                "binding_type": "collection"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "((#form_button_text - $key) = #form_button_text)",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "((#form_button_text - $key) = #form_button_text)",
                // 결과가 들어갈 속성
                "target_property_name": "#enabled"
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "disabled_variable_button_style@starlib_pkg_button_style.common_button_style": {
        // 오버라이드 가능한 변수
        "$BUTTON_STYLE_disabled_variable_key|default": "",
        // 오버라이드 가능한 변수
        "$BUTTON_STYLE_variables": [
            {
                // ???/?? ??
                "default": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "100%"
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": "$bindings",
                    // 오버라이드 가능한 변수
                    "$bindings": [
                        {
                            // 목록 이름
                            "binding_collection_name": "form_buttons",
                            // 가져올 값 이름
                            "binding_name": "#form_button_text",
                            // 목록 데이터를 반복 연결
                            "binding_type": "collection"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "((#form_button_text - $BUTTON_STYLE_disabled_variable_key) = #form_button_text)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "((#form_button_text - $BUTTON_STYLE_disabled_variable_key) = #form_button_text)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#enabled"
                        }
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": "$BUTTON_STYLE_default_variable_controls",
                    // 오버라이드 가능한 변수
                    "$BUTTON_STYLE_default_variable_controls|default": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "default_default@starlib_pkg_button_style.button_style_template": {
                                // 사용할 이미지 경로
                                "texture": "$BUTTON_STYLE_default_variable_texture",
                                // 오버라이드 가능한 변수
                                "$BUTTON_STYLE_default_variable_texture|default": ""
                            }
                        }
                    ]
                }
            },
            {
                // ???/?? ??
                "disabled": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "100%"
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": "$bindings",
                    // 오버라이드 가능한 변수
                    "$bindings": [
                        {
                            // 목록 이름
                            "binding_collection_name": "form_buttons",
                            // 가져올 값 이름
                            "binding_name": "#form_button_text",
                            // 목록 데이터를 반복 연결
                            "binding_type": "collection"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(not((#form_button_text - $BUTTON_STYLE_disabled_variable_key) = #form_button_text))",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(not((#form_button_text - $BUTTON_STYLE_disabled_variable_key) = #form_button_text))",
                            // 결과가 들어갈 속성
                            "target_property_name": "#enabled"
                        }
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": "$BUTTON_STYLE_disabled_variable_controls",
                    // 오버라이드 가능한 변수
                    "$BUTTON_STYLE_disabled_variable_controls|default": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "disabled_default@starlib_pkg_button_style.button_style_template": {
                                // 사용할 이미지 경로
                                "texture": "$BUTTON_STYLE_disabled_variable_texture",
                                // 오버라이드 가능한 변수
                                "$BUTTON_STYLE_disabled_variable_texture|default": ""
                            }
                        }
                    ]
                }
            }
        ]
    }
}

button_templates.jsonc StarLib · StarLibV2-1.0.3.3

필요한 부분만 참고해서 가져가세요.

// 예제: button_templates.jsonc
// 분류: StarLib / StarLibV2-1.0.3.3
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 by pipa_ngry
//   Please respect my work, don't pass at yours and use it for its intended purpose.
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "starlib_pkg_button_templates",
    // ???/?? ??
    "common_vertical_stack_item": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 쌓는 방향(가로/세로)
        "orientation": "vertical",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%c"
        ],
        // 오버라이드 가능한 변수
        "$VERTICAL_ITEM_button_control|default": "style.dme_09",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "top_margin": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": "$VERTICAL_ITEM_top_margin_size",
                    // 오버라이드 가능한 변수
                    "$VERTICAL_ITEM_top_margin_size|default": [
                        0,
                        1
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "button@$VERTICAL_ITEM_button_control": {}
            },
            {
                // ???/?? ??
                "bottom_margin": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": "$VERTICAL_ITEM_bottom_margin_size",
                    // 오버라이드 가능한 변수
                    "$VERTICAL_ITEM_bottom_margin_size|default": [
                        0,
                        1
                    ]
                }
            }
        ]
    },
    // ???/?? ??
    "bordered_button_template": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": "$BORDERED_BUTTON_size",
        // 오버라이드 가능한 변수
        "$BORDERED_BUTTON_size": [
            "100%",
            "100%"
        ],
        // 오버라이드 가능한 변수
        "$BORDERED_BUTTON_background_control|default": "style.black",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "button_background@$BORDERED_BUTTON_background_control": {
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 16
                }
            },
            {
                // ???/?? ??
                "button": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [
                        "100% - 2px",
                        "100% - 2px"
                    ],
                    // 오버라이드 가능한 변수
                    "$BORDERED_BUTTON_default_control|default": "style.dme_10",
                    // 이 안에 들어가는 부품 목록
                    "controls": "$BORDERED_BUTTON_inner",
                    // 오버라이드 가능한 변수
                    "$BORDERED_BUTTON_inner|default": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "root@$BORDERED_BUTTON_default_control": {
                                // 가로/세로 크기
                                "size": [
                                    "100%",
                                    "100%"
                                ]
                            }
                        }
                    ]
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "horizontal_button@starlib_pkg_button_templates.common_vertical_stack_item": {
        // 오버라이드 가능한 변수
        "$VERTICAL_ITEM_button_control": "starlib_pkg_button_templates.horizontal_button_template"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "horizontal_button_template@starlib_pkg_button_templates.bordered_button_template": {
        // 가로/세로 크기
        "size": "$HORIZONTAL_BUTTON_size",
        // 오버라이드 가능한 변수
        "$HORIZONTAL_BUTTON_size|default": [
            "100%",
            32
        ],
        // 오버라이드 가능한 변수
        "$BORDERED_BUTTON_inner": [
            {
                // ???/?? ??
                "horizontal_button": {
                    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                    "type": "stack_panel",
                    // 쌓는 방향(가로/세로)
                    "orientation": "horizontal",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "100%"
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "image@starlib_pkg_button_templates.horizontal_button_image": {}
                        },
                        {
                            // ???/?? ??
                            "root": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [
                                    "fill",
                                    "100%"
                                ],
                                // 오버라이드 가능한 변수
                                "$HORIZONTAL_BUTTON_root_control|default": "starlib_pkg_button_common.common_button",
                                // 오버라이드 가능한 변수
                                "$HORIZONTAL_BUTTON_content_control|default": "starlib_pkg_button_common.button_text",
                                // 이 안에 들어가는 부품 목록
                                "controls": [
                                    {
                                        // 다른 템플릿을 가져와서 확장(상속)
                                        "root@$HORIZONTAL_BUTTON_root_control": {}
                                    },
                                    {
                                        // 다른 템플릿을 가져와서 확장(상속)
                                        "content@$HORIZONTAL_BUTTON_content_control": {}
                                    }
                                ]
                            }
                        }
                    ]
                }
            }
        ]
    },
    // ???/?? ??
    "horizontal_button_image": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 쌓는 방향(가로/세로)
        "orientation": "horizontal",
        // 가로/세로 크기
        "size": "$HORIZONTAL_BUTTON_image_panel_size",
        // 오버라이드 가능한 변수
        "$HORIZONTAL_BUTTON_image_panel_size|default": [
            "100%y + 1px",
            "100%"
        ],
        // 게임 값과 연결하는 규칙 목록
        "bindings": "$HORIZONTAL_BUTTON_image_bindings",
        // 오버라이드 가능한 변수
        "$HORIZONTAL_BUTTON_image_bindings|default": [
            {
                // 가져올 값 이름
                "binding_name": "#form_button_texture",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#texture",
                // 목록 데이터를 반복 연결
                "binding_type": "collection",
                // 목록 이름
                "binding_collection_name": "form_buttons"
            },
            {
                // 가져올 값 이름
                "binding_name": "#form_button_texture_file_system",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#texture_file_system",
                // 목록 데이터를 반복 연결
                "binding_type": "collection",
                // 목록 이름
                "binding_collection_name": "form_buttons"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(not((#texture = '') or (#texture = 'loading')))",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "imame_root": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [
                        "fill",
                        "100%"
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "image@starlib_pkg_button_common.button_image": {
                                // 가로/세로 크기
                                "size": [
                                    "100%",
                                    "100%"
                                ]
                            }
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "image_background@style.image": {
                                // 사용할 이미지 경로
                                "texture": "$HORIZONTAL_BUTTON_image_background_texture",
                                // 오버라이드 가능한 변수
                                "$HORIZONTAL_BUTTON_image_background_texture|default": "",
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": 30
                            }
                        }
                    ]
                }
            },
            {
                // ???/?? ??
                "margin": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": "$HORIZONTAL_BUTTON_image_margin_size",
                    // 오버라이드 가능한 변수
                    "$HORIZONTAL_BUTTON_image_margin_size|default": [
                        1,
                        0
                    ]
                }
            }
        ]
    },
    // ???/?? ??
    "cubic_button": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": "$CUBIC_BUTTON_size",
        // 오버라이드 가능한 변수
        "$CUBIC_BUTTON_size|default": [
            "100%",
            "100%x"
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "root@starlib_pkg_button_common.common_button": {}
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "content@common_cubic_button_content": {}
            }
        ]
    },
    // ???/?? ??
    "common_cubic_button_content": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 쌓는 방향(가로/세로)
        "orientation": "vertical",
        // 가로/세로 크기
        "size": "$CUBIC_BUTTON_content_size",
        // 오버라이드 가능한 변수
        "$CUBIC_BUTTON_content_size|default": [
            "100%",
            "100%"
        ],
        // 기준점에서 이동하는 거리
        "offset": "$CUBIC_BUTTON_content_offset",
        // 오버라이드 가능한 변수
        "$CUBIC_BUTTON_content_offset|default": [
            0,
            0
        ],
        // ???/?? ??
        "max_size": [
            "100%",
            "100%"
        ],
        // 오버라이드 가능한 변수
        "$CUBIC_BUTTON_text_control|default": "starlib_pkg_button_common.button_text",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "image_panel": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "fill"
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "button_image@starlib_pkg_button_common.button_image": {
                                // 가로/세로 크기
                                "size": "$CUBIC_BUTTON_image_size",
                                // 오버라이드 가능한 변수
                                "$CUBIC_BUTTON_image_size|default": [
                                    "100%",
                                    "100%"
                                ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": "$CUBIC_BUTTON_image_bindings",
                                // 오버라이드 가능한 변수
                                "$CUBIC_BUTTON_image_bindings|default": "$BUTTON_IMAGE_bindings"
                            }
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "button_text@$CUBIC_BUTTON_text_control": {}
            },
            {
                // ???/?? ??
                "bottom_padding": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": "$CUBIC_BUTTON_bottom_padding_size",
                    // 오버라이드 가능한 변수
                    "$CUBIC_BUTTON_bottom_padding_size|default": [
                        0,
                        2
                    ]
                }
            }
        ]
    },
    // ???/?? ??
    "big_button": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": "$BIG_BUTTON_size",
        // 오버라이드 가능한 변수
        "$BIG_BUTTON_size|default": [
            "100%",
            "100%x"
        ],
        // 오버라이드 가능한 변수
        "$BIG_BUTTON_content_control|default": "starlib_pkg_button_templates.common_big_button_content",
        // 오버라이드 가능한 변수
        "$BIG_BUTTON_image_overlap_control|default": "global.empty_panel",
        // 오버라이드 가능한 변수
        "$BIG_BUTTON_image_size|default": [
            "100% - 4px",
            "100% - 4px"
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "root@starlib_pkg_button_common.common_button": {}
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "image@starlib_pkg_button_common.button_image": {
                    // 가로/세로 크기
                    "size": "$BIG_BUTTON_image_size",
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 32,
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": "$BIG_BUTTON_image_bindings",
                    // 오버라이드 가능한 변수
                    "$BIG_BUTTON_image_bindings|default": [
                        {
                            // 가져올 값 이름
                            "binding_name": "#form_button_texture",
                            // 가져온 값을 다른 속성으로 연결
                            "binding_name_override": "#texture",
                            // 목록 데이터를 반복 연결
                            "binding_type": "collection",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#form_button_texture_file_system",
                            // 가져온 값을 다른 속성으로 연결
                            "binding_name_override": "#texture_file_system",
                            // 목록 데이터를 반복 연결
                            "binding_type": "collection",
                            // 목록 이름
                            "binding_collection_name": "form_buttons"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(not((#texture = '') or (#texture = 'loading')))",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        }
                    ],
                    // ?? ??
                    "fill": "$BIG_BUTTON_enable_image_fill",
                    // 오버라이드 가능한 변수
                    "$BIG_BUTTON_enable_image_fill|default": false
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "image_overlap@$BIG_BUTTON_image_overlap_control": {
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 38,
                    // 가로/세로 크기
                    "size": "$BIG_BUTTON_overlap_size",
                    // 오버라이드 가능한 변수
                    "$BIG_BUTTON_overlap_size|default": "$BIG_BUTTON_image_size"
                }
            },
            {
                // ???/?? ??
                "content_panel": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": "$BIG_BUTTON_content_size",
                    // 오버라이드 가능한 변수
                    "$BIG_BUTTON_content_size|default": [
                        "100% - 4px",
                        "100% - 4px"
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "content@$BIG_BUTTON_content_control": {
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": 42,
                                // ???/?? ??
                                "max_size": [
                                    "100%",
                                    "100%"
                                ]
                            }
                        }
                    ]
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "common_big_button_content@starlib_pkg_button_common.button_text": {
        // 오버라이드 가능한 변수
        "$BIG_BUTTON_CONTENT_text_alignment|default": "left",
        // 오버라이드 가능한 변수
        "$BIG_BUTTON_CONTENT_font_type|default": "MinecraftTen",
        // 오버라이드 가능한 변수
        "$BIG_BUTTON_CONTENT_font_scale_factor|default": 1.2,
        // ?? ??
        "text_alignment": "$BIG_BUTTON_CONTENT_text_alignment",
        // ??
        "font_type": "$BIG_BUTTON_CONTENT_font_type",
        // ?? ?? ??
        "font_scale_factor": "$BIG_BUTTON_CONTENT_font_scale_factor",
        // 기준점(어디에서 시작할지)
        "anchor_from": "bottom_middle",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "bottom_middle"
    },
    // ???/?? ??
    "grid_item_template": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": "$GRID_ITEM_size",
        // 오버라이드 가능한 변수
        "$GRID_ITEM_size|default": [
            "100%",
            "100%x"
        ],
        // 오버라이드 가능한 변수
        "$GRID_ITEM_root_control|default": "style.dme_11",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "root@$GRID_ITEM_root_control": {
                    // 가로/세로 크기
                    "size": "$GRID_ITEM_root_size",
                    // 오버라이드 가능한 변수
                    "$GRID_ITEM_root_size|default": [
                        "100% - 2px",
                        "100% - 2px"
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": "$GRID_ITEM_BINDINGS",
                    // 오버라이드 가능한 변수
                    "$GRID_ITEM_BINDINGS|default": []
                }
            }
        ]
    },
    // ???/?? ??
    "hover_button": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": "$HOVER_BUTTON_size",
        // 오버라이드 가능한 변수
        "$HOVER_BUTTON_size|default": [
            "100%",
            "100%x"
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "content@starlib_pkg_button_common.button_image": {
                    // 가로/세로 크기
                    "size": "$HOVER_BUTTON_image_size",
                    // 오버라이드 가능한 변수
                    "$HOVER_BUTTON_image_size|default": [
                        "100% - 8px",
                        "100% - 8px"
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "root@starlib_pkg_button_common.common_button": {
                    // 오버라이드 가능한 변수
                    "$COMMON_BUTTON_hover_control": "starlib_pkg_button_templates.hover_button_hover_root"
                }
            }
        ]
    },
    // ???/?? ??
    "hover_button_hover_root": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%"
        ],
        // 오버라이드 가능한 변수
        "$HOVER_BUTTON_hover_control|default": "style.hightlight",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "root@$HOVER_BUTTON_hover_control": {}
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "hover_text@starlib_pkg_button_common.hover_text": {}
            }
        ]
    }
}

common_button.jsonc StarLib · StarLibV2-1.0.3.3

필요한 부분만 참고해서 가져가세요.

// 예제: common_button.jsonc
// 분류: StarLib / StarLibV2-1.0.3.3
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 by pipa_ngry
//   Please respect my work, don't pass at yours and use it for its intended purpose.
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "starlib_pkg_button_common",
    // 다른 템플릿을 가져와서 확장(상속)
    "common_button_panel@common.button": {
        // 오버라이드 가능한 변수
        "$pressed_button_name": "button.form_button_click",
        // 오버라이드 가능한 변수
        "$default_state": false,
        // 가로/세로 크기
        "size": [
          "100%",
          "100%"
        ],
        // ??? ??
        "sound_name": "$COMMON_BUTTON_sound_name",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_sound_name|default": "random.click",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_hover_control|default": "style.hightlight",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_pressed_control|default": "$COMMON_BUTTON_hover_control",
        // 게임 값과 연결하는 규칙 목록
        "bindings": "$COMMON_BUTTON_bindings",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_bindings|default": [
            {
                // 목록 이름
                "binding_collection_name": "form_buttons",
                // 목록 인덱스/현재 항목 정보 제공
                "binding_type": "collection_details"
            }
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "hover@$COMMON_BUTTON_hover_control": {
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 225
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "pressed@$COMMON_BUTTON_pressed_control": {
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 225
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "sensible_button_panel@common.button": {
        // 오버라이드 가능한 변수
        "$pressed_button_name": "button.form_button_click",
        // 가로/세로 크기
        "size": [
          "100%",
          "100%"
        ],
        // ??? ??
        "sound_name": "$SENSIBLE_BUTTON_sound_name",
        // 오버라이드 가능한 변수
        "$SENSIBLE_BUTTON_sound_name|default": "random.click",
        // 오버라이드 가능한 변수
        "$SENSIBLE_BUTTON_default_control|default": "global.empty_panel",
        // 오버라이드 가능한 변수
        "$SENSIBLE_BUTTON_hover_control|default": "global.empty_panel",
        // 오버라이드 가능한 변수
        "$SENSIBLE_BUTTON_pressed_control|default": "$SENSIBLE_BUTTON_hover_control",
        // 게임 값과 연결하는 규칙 목록
        "bindings": "$SENSIBLE_BUTTON_bindings",
        // 오버라이드 가능한 변수
        "$SENSIBLE_BUTTON_bindings|default": [
            {
                // 목록 이름
                "binding_collection_name": "form_buttons",
                // 목록 인덱스/현재 항목 정보 제공
                "binding_type": "collection_details"
            }
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "default@$SENSIBLE_BUTTON_default_control": {}
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "hover@$SENSIBLE_BUTTON_hover_control": {
                    // 가로/세로 크기
                    "size": "$SENSIBLE_BUTTON_hover_size",
                    // 오버라이드 가능한 변수
                    "$SENSIBLE_BUTTON_hover_size|default": [
                        "100% + 2px",
                        "100% + 2px"
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "pressed@$SENSIBLE_BUTTON_pressed_control": {}
            }
        ]
    },
    // ???/?? ??
    "common_button": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%"
        ],
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_panel_control|default": "starlib_pkg_button_common.common_button_panel",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_style_control|default": "starlib_pkg_button_style.common_button_style",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_content_control|default": "global.empty_panel",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "common_button_panel@$COMMON_BUTTON_panel_control": {}
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "common_button_style@$COMMON_BUTTON_style_control": {}
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "common_button_content@$COMMON_BUTTON_content_control": {
                    // ???/?? ??
                    "max_size": [
                        "100%",
                        "100%"
                    ]
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "disabled_variable_button_panel@starlib_pkg_button_common.common_button_panel": {
        // 오버라이드 가능한 변수
        "$BUTTON_STYLE_disabled_variable_key|default": "",
        // 오버라이드 가능한 변수
        "$COMMON_BUTTON_bindings": [
            {
                // 목록 이름
                "binding_collection_name": "form_buttons",
                // 목록 인덱스/현재 항목 정보 제공
                "binding_type": "collection_details"
            },
            {
                // 목록 이름
                "binding_collection_name": "form_buttons",
                // 가져올 값 이름
                "binding_name": "#form_button_text",
                // 목록 데이터를 반복 연결
                "binding_type": "collection"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "((#form_button_text - $BUTTON_STYLE_disabled_variable_key) = #form_button_text)",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "((#form_button_text - $BUTTON_STYLE_disabled_variable_key) = #form_button_text)",
                // 결과가 들어갈 속성
                "target_property_name": "#enabled"
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "button_image@style.image": {
        // 겹치는 순서(숫자 클수록 위)
        "layer": 235,
        // 게임 값과 연결하는 규칙 목록
        "bindings": "$BUTTON_IMAGE_bindings",
        // 오버라이드 가능한 변수
        "$BUTTON_IMAGE_bindings|default": [
            {
                // 가져올 값 이름
                "binding_name": "#form_button_texture",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#texture",
                // 목록 데이터를 반복 연결
                "binding_type": "collection",
                // 목록 이름
                "binding_collection_name": "form_buttons"
            },
            {
                // 가져올 값 이름
                "binding_name": "#form_button_texture_file_system",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#texture_file_system",
                // 목록 데이터를 반복 연결
                "binding_type": "collection",
                // 목록 이름
                "binding_collection_name": "form_buttons"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(not((#texture = '') or (#texture = 'loading')))",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "button_text@style.label": {
        // 보여줄 글자
        "text": "#form_button_text",
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 목록 이름
                "binding_collection_name": "form_buttons",
                // 가져올 값 이름
                "binding_name": "#form_button_text",
                // 목록 데이터를 반복 연결
                "binding_type": "collection"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(not(#form_button_text = ''))",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ],
        // 오버라이드 가능한 변수
        "$label_layer": 245
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "range_selection_button_text@style.label": {
        // 보여줄 글자
        "text": "#text",
        // 오버라이드 가능한 변수
        "$from|default": "",
        // 오버라이드 가능한 변수
        "$to|default": "",
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 목록 이름
                "binding_collection_name": "form_buttons",
                // 가져올 값 이름
                "binding_name": "#form_button_text",
                // 목록 데이터를 반복 연결
                "binding_type": "collection"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(((('%.' + $to + 's') * #form_button_text) - (('%.' + $from + 's') * #form_button_text)) - '\t')",
                // 결과가 들어갈 속성
                "target_property_name": "#text"
            },
            {
                // 계산식/참조 값
                "source_property_name": "(not(#text = ''))",
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ],
        // 오버라이드 가능한 변수
        "$label_layer": 245
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "reverse_conditions_range_selection_button_text@style.label": {
        // 보여줄 글자
        "text": "#text",
        // 오버라이드 가능한 변수
        "$from|default": "",
        // 오버라이드 가능한 변수
        "$to|default": "",
        // 오버라이드 가능한 변수
        "$key|default": "",
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 목록 이름
                "binding_collection_name": "form_buttons",
                // 가져올 값 이름
                "binding_name": "#form_button_text",
                // 목록 데이터를 반복 연결
                "binding_type": "collection"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(((('%.' + $to + 's') * #form_button_text) - (('%.' + $from + 's') * #form_button_text)) - '\t')",
                // 결과가 들어갈 속성
                "target_property_name": "#text"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "((not(#text = '')) and ((#form_button_text - $key) = #form_button_text))",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "((not(#text = '')) and ((#form_button_text - $key) = #form_button_text))",
                // 결과가 들어갈 속성
                "target_property_name": "#enabled"
            }
        ],
        // 오버라이드 가능한 변수
        "$label_layer": 245
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "conditions_range_selection_button_text@style.label": {
        // 보여줄 글자
        "text": "#text",
        // 오버라이드 가능한 변수
        "$from|default": "",
        // 오버라이드 가능한 변수
        "$to|default": "",
        // 오버라이드 가능한 변수
        "$key|default": "",
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 목록 이름
                "binding_collection_name": "form_buttons",
                // 가져올 값 이름
                "binding_name": "#form_button_text",
                // 목록 데이터를 반복 연결
                "binding_type": "collection"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(((('%.' + $to + 's') * #form_button_text) - (('%.' + $from + 's') * #form_button_text)) - '\t')",
                // 결과가 들어갈 속성
                "target_property_name": "#text"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "((not(#text = '')) and (not((#form_button_text - $key) = #form_button_text)))",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "((not(#text = '')) and (not((#form_button_text - $key) = #form_button_text)))",
                // 결과가 들어갈 속성
                "target_property_name": "#enabled"
            }
        ],
        // 오버라이드 가능한 변수
        "$label_layer": 245
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "hover_text@common.hover_text": {
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 목록 이름
                "binding_collection_name": "form_buttons",
                // 목록 데이터를 반복 연결
                "binding_type": "collection",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#hover_text",
                // 가져올 값 이름
                "binding_name": "#form_button_text"
            }
        ],
        // 겹치는 순서(숫자 클수록 위)
        "layer": 255
    }
}

common_custom.jsonc StarLib · StarLibV2-1.0.3.3

필요한 부분만 참고해서 가져가세요.

// 예제: common_custom.jsonc
// 분류: StarLib / StarLibV2-1.0.3.3
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 by pipa_ngry
//   Please respect my work, don't pass at yours and use it for its intended purpose.
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "starlib_pkg_custom_common",
    //search_conditions_element_binding using Theorist's search bar template.
    "search_conditions_element_binding": {
        // 이 컨트롤 안에서 쓰는 임시 저장소
        "property_bag": {
            // ???/??? ?
            "#default_search": "default_search"
        },
        // 오버라이드 가능한 변수
        "$search_binding_name|default": "search_field",
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#form_button_text",
                // 목록 데이터를 반복 연결
                "binding_type": "collection",
                // 목록 이름
                "binding_collection_name": "form_buttons"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // ?? ??
                "source_control_name": "$search_binding_name",
                // 계산식/참조 값
                "source_property_name": "#item_name",
                // 결과가 들어갈 속성
                "target_property_name": "#search"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "#default_search",
                // 결과가 들어갈 속성
                "target_property_name": "#search",
                // ?? ???
                "binding_condition": "once"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(#search = '')",
                // 결과가 들어갈 속성
                "target_property_name": "#is_not_empty"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(not ((#form_button_text - #search) = #form_button_text))",
                // 결과가 들어갈 속성
                "target_property_name": "#is_being_searched"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(#is_not_empty or #is_being_searched)",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ]
    },
    // ???/?? ??
    "text_range_search_conditions_element_binding": {
        // 오버라이드 가능한 변수
        "$from|default": "",
        // 오버라이드 가능한 변수
        "$to|default": "",
        // 이 컨트롤 안에서 쓰는 임시 저장소
        "property_bag": {
            // ???/??? ?
            "#default_search": "default_search"
        },
        // 오버라이드 가능한 변수
        "$search_binding_name|default": "search_field",
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#form_button_text",
                // 목록 데이터를 반복 연결
                "binding_type": "collection",
                // 목록 이름
                "binding_collection_name": "form_buttons"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(((('%.' + $to + 's') * #form_button_text) - (('%.' + $from + 's') * #form_button_text)) - '\t')",
                // 결과가 들어갈 속성
                "target_property_name": "#text"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // ?? ??
                "source_control_name": "$search_binding_name",
                // 계산식/참조 값
                "source_property_name": "#item_name",
                // 결과가 들어갈 속성
                "target_property_name": "#search"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "#default_search",
                // 결과가 들어갈 속성
                "target_property_name": "#search",
                // ?? ???
                "binding_condition": "once"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(#search = '')",
                // 결과가 들어갈 속성
                "target_property_name": "#is_not_empty"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(not ((#text - #search) = #text))",
                // 결과가 들어갈 속성
                "target_property_name": "#is_being_searched"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(#is_not_empty or #is_being_searched)",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ]
    }
}

common_dynamic.jsonc StarLib · StarLibV2-1.0.3.3

필요한 부분만 참고해서 가져가세요.

// 예제: common_dynamic.jsonc
// 분류: StarLib / StarLibV2-1.0.3.3
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 by pipa_ngry
//   Please respect my work, don't pass at yours and use it for its intended purpose.
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "starlib_pkg_dynamic_common",
    // ???/?? ??
    "common_dynamic_header": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": "$DYNAMIC_HEADER_size",
        // 오버라이드 가능한 변수
        "$DYNAMIC_HEADER_size|default": [
            "100%",
            24
        ],
        // 오버라이드 가능한 변수
        "$DYNAMIC_HEADER_background_control|default": "style.black",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "root": {
                    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                    "type": "stack_panel",
                    // 쌓는 방향(가로/세로)
                    "orientation": "horizontal",
                    // 가로/세로 크기
                    "size": "$DYNAMIC_HEADER_root_size",
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_HEADER_root_size|default": [
                        "100% - 2px",
                        "100% - 2px"
                    ],
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_HEADER_header_contents_control|default": "global.empty_panel",
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_HEADER_right_header_contents_control|default": "global.empty_panel",
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_HEADER_style_control|default": "style.black_alpha",
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_HEADER_close_button_control|default": "starlib_pkg_dynamic_common.common_dynamic_header_close_button",
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "header_contents@$DYNAMIC_HEADER_header_contents_control": {}
                        },
                        {
                            // ???/?? ??
                            "titleline": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [
                                    "fill",
                                    "100%"
                                ],
                                // 오버라이드 가능한 변수
                                "$DYNAMIC_HEADER_title_control|default": "starlib_pkg_screen_common.title_template",
                                // 이 안에 들어가는 부품 목록
                                "controls": [
                                    {
                                        // 다른 템플릿을 가져와서 확장(상속)
                                        "header_style@$DYNAMIC_HEADER_style_control": {
                                            // 겹치는 순서(숫자 클수록 위)
                                            "layer": 16
                                        }
                                    },
                                    {
                                        // 다른 템플릿을 가져와서 확장(상속)
                                        "title@$DYNAMIC_HEADER_title_control": {}
                                    }
                                ]
                            }
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "right_header_contents@$DYNAMIC_HEADER_right_header_contents_control": {}
                        },
                        {
                            // ???/?? ??
                            "padding": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [
                                    1,
                                    0
                                ]
                            }
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "close_button@$DYNAMIC_HEADER_close_button_control": {}
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "background@$DYNAMIC_HEADER_background_control": {
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 12
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "common_dynamic_header_close_button@starlib_pkg_screen_common.close_button_template": {
        // 가로/세로 크기
        "size": [
            "100%y",
            "100%"
        ]
    },
    // ???/?? ??
    "common_dynamic_button_content": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 쌓는 방향(가로/세로)
        "orientation": "vertical",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%"
        ],
        // 오버라이드 가능한 변수
        "$DYNAMIC_CONTENT_image_control|default": "starlib_pkg_button_common.button_image",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "auto_padding_top@global.reverse_binding": {
                    // 오버라이드 가능한 변수
                    "$key": "$DYNAMIC_CONTENT_switch_key",
                    // 가로/세로 크기
                    "size": [
                        "fill",
                        "fill"
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "image_panel@global.binding": {
                    // 오버라이드 가능한 변수
                    "$key": "$DYNAMIC_CONTENT_switch_key",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "fill"
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "image_panel@$DYNAMIC_CONTENT_image_control": {
                                // 가로/세로 크기
                                "size": "$DYNAMIC_CONTENT_image_size",
                                // 오버라이드 가능한 변수
                                "$DYNAMIC_CONTENT_image_size|default": [
                                    "100%",
                                    "100%"
                                ]
                            }
                        }
                    ]
                }
            },
            {
                // ???/?? ??
                "text_content": {
                    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                    "type": "stack_panel",
                    // 쌓는 방향(가로/세로)
                    "orientation": "vertical",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "100%c"
                    ],
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_CONTENT_text_control|default": "starlib_pkg_button_common.button_text",
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "text_content@$DYNAMIC_CONTENT_text_control": {}
                        },
                        {
                            // ???/?? ??
                            "soft_padding": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": "$DYNAMIC_CONTENT_soft_padding_size",
                                // 오버라이드 가능한 변수
                                "$DYNAMIC_CONTENT_soft_padding_size|default": [
                                    0,
                                    2
                                ]
                            }
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "auto_padding_bottom@global.reverse_binding": {
                    // 오버라이드 가능한 변수
                    "$key": "$DYNAMIC_CONTENT_switch_key",
                    // 가로/세로 크기
                    "size": [
                        "fill",
                        "fill"
                    ]
                }
            }
        ]
    },
    // ???/?? ??
    "image_conditions_dynamic_button_content": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 쌓는 방향(가로/세로)
        "orientation": "vertical",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%"
        ],
        // 오버라이드 가능한 변수
        "$DYNAMIC_CONTENT_image_control|default": "starlib_pkg_button_common.button_image",
        // 오버라이드 가능한 변수
        "$DYNAMIC_CONTENT_condition_bindings|default": [
            {
                // 가져올 값 이름
                "binding_name": "#form_button_texture",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#texture",
                // 목록 데이터를 반복 연결
                "binding_type": "collection",
                // 목록 이름
                "binding_collection_name": "form_buttons"
            },
            {
                // 가져올 값 이름
                "binding_name": "#form_button_texture_file_system",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#texture_file_system",
                // 목록 데이터를 반복 연결
                "binding_type": "collection",
                // 목록 이름
                "binding_collection_name": "form_buttons"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(not(#texture = ''))",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ],
        // 오버라이드 가능한 변수
        "$DYNAMIC_CONTENT_reverse_condition_bindings|default": [
            {
                // 가져올 값 이름
                "binding_name": "#form_button_texture",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#texture",
                // 목록 데이터를 반복 연결
                "binding_type": "collection",
                // 목록 이름
                "binding_collection_name": "form_buttons"
            },
            {
                // 가져올 값 이름
                "binding_name": "#form_button_texture_file_system",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#texture_file_system",
                // 목록 데이터를 반복 연결
                "binding_type": "collection",
                // 목록 이름
                "binding_collection_name": "form_buttons"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(#texture = '')",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "auto_padding_top": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [
                        "fill",
                        "fill"
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": "$DYNAMIC_CONTENT_reverse_condition_bindings"
                }
            },
            {
                // ???/?? ??
                "image_panel": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "fill"
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": "$DYNAMIC_CONTENT_condition_bindings",
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "image_panel@$DYNAMIC_CONTENT_image_control": {
                                // 가로/세로 크기
                                "size": "$DYNAMIC_CONTENT_image_size",
                                // 오버라이드 가능한 변수
                                "$DYNAMIC_CONTENT_image_size|default": [
                                    "100%",
                                    "100%"
                                ]
                            }
                        }
                    ]
                }
            },
            {
                // ???/?? ??
                "text_content": {
                    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                    "type": "stack_panel",
                    // 쌓는 방향(가로/세로)
                    "orientation": "vertical",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "100%c"
                    ],
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_CONTENT_text_control|default": "starlib_pkg_button_common.button_text",
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "text_content@$DYNAMIC_CONTENT_text_control": {}
                        },
                        {
                            // ???/?? ??
                            "soft_padding": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": "$DYNAMIC_CONTENT_soft_padding_size",
                                // 오버라이드 가능한 변수
                                "$DYNAMIC_CONTENT_soft_padding_size|default": [
                                    0,
                                    2
                                ]
                            }
                        }
                    ]
                }
            },
            {
                // ???/?? ??
                "auto_padding_bottom": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [
                        "fill",
                        "fill"
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": "$DYNAMIC_CONTENT_reverse_condition_bindings"
                }
            }
        ]
    }
}

custom_edit_box.jsonc StarLib · StarLibV2-1.0.3.3

필요한 부분만 참고해서 가져가세요.

// 예제: custom_edit_box.jsonc
// 분류: StarLib / StarLibV2-1.0.3.3
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 by pipa_ngry
//   Please respect my work, don't pass at yours and use it for its intended purpose.
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "starlib_pkg_custom_edit_box",
    // 다른 템플릿을 가져와서 확장(상속)
    "common_search_box@common.text_edit_box": {
        // 가로/세로 크기
        "size": "$COMMON_SEARCH_BOX_size",
        // 오버라이드 가능한 변수
        "$COMMON_SEARCH_BOX_size|default": [
            "100%",
            32
        ],
        // 오버라이드 가능한 변수
        "$COMMON_SEARCH_BOX_place_holder_text|default": "Search",
        // 오버라이드 가능한 변수
        "$COMMON_SEARCH_BOX_name|default": "search_field",
        // 오버라이드 가능한 변수
        "$text_box_name": "$COMMON_SEARCH_BOX_name",
        // 오버라이드 가능한 변수
        "$text_edit_text_control": "$COMMON_SEARCH_BOX_name",
        // 오버라이드 가능한 변수
        "$place_holder_text": "$COMMON_SEARCH_BOX_place_holder_text",
        // 오버라이드 가능한 변수
        "$COMMON_SEARCH_BOX_clear_button_enabled|default": false,
        // 오버라이드 가능한 변수
        "$text_edit_box_clear_to_button_id": "$COMMON_SEARCH_BOX_clear_button_control",
        // 오버라이드 가능한 변수
        "$COMMON_SEARCH_BOX_clear_button_control|default": "button.search_bar_clear"
    }
}

custom_renders.jsonc StarLib · StarLibV2-1.0.3.3

필요한 부분만 참고해서 가져가세요.

// 예제: custom_renders.jsonc
// 분류: StarLib / StarLibV2-1.0.3.3
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 by pipa_ngry
//   Please respect my work, don't pass at yours and use it for its intended purpose.
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "starlib_pkg_custom_renders",
    // ???/?? ??
    "paperdoll_template": {
        // 특수 렌더러(그라디언트/플레이어 등)
        "type": "custom",
        // 커스텀 렌더러 종류
        "renderer": "paper_doll_renderer",
        // 기준점(어디에서 시작할지)
        "anchor_from": "center",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "center",
        // 오버라이드 가능한 변수
        "$PAPERDOLL_size|default": [
            "100%",
            "100%"
        ],
        // 기준점에서 이동하는 거리
        "offset": "$PAPERDOLL_offset",
        // 오버라이드 가능한 변수
        "$PAPERDOLL_offset|default": [
            0,
            0
        ],
        // ?? ??
        "use_selected_skin": "$PAPERDOLL_use_selected_skin",
        // 오버라이드 가능한 변수
        "$PAPERDOLL_use_selected_skin|default": true,
        // ?? ??
        "use_uuid": "$PAPERDOLL_use_uuid",
        // 오버라이드 가능한 변수
        "$PAPERDOLL_use_uuid|default": false,
        // ????? ?? ?
        "animation_reset_name": "screen_animation_reset",
        // 애니메이션 목록
        "anims": [
            "@common.screen_exit_size_animation_push",
            "@common.screen_exit_size_animation_pop",
            "@common.screen_entrance_size_animation_push",
            "@common.screen_entrance_size_animation_pop"
        ],
        // ?? ??
        "rotation": "gesture_x",
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#is_appearance_visible",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#visible",
                // ?? ???
                "binding_condition": "always"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "#form_text",
                // 결과가 들어갈 속성
                "target_property_name": "#player_uuid"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // ?? ??
                "source_control_name": "viewer_panel",
                // 계산식/참조 값
                "source_property_name": "#gesture_delta_source",
                // 결과가 들어갈 속성
                "target_property_name": "#gesture_delta_source"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // ?? ??
                "source_control_name": "viewer_panel",
                // 계산식/참조 값
                "source_property_name": "#gesture_mouse_delta_x",
                // 결과가 들어갈 속성
                "target_property_name": "#gesture_mouse_delta_x"
            }
        ],
        // 겹치는 순서(숫자 클수록 위)
        "layer": 1
    },
    // ???/?? ??
    "doll_rotation_area": {
        // 마우스/커서 따라다니는 패널
        "type": "input_panel",
        // 오버라이드 가능한 변수
        "$ROTATION_AREA_size|default": [
            "100%",
            "100%"
        ],
        // ?? ?? ?
        "gesture_tracking_button": "button.turn_doll",
        // ?? ??
        "always_handle_controller_direction": true,
        // ?? ??
        "tts_ignore_count": true,
        // 입력 키/버튼과 동작 연결
        "button_mappings": [
            {
                // ?? ?? ?
                "button_up_right_of_first_refusal": true,
                // 입력 시점(pressed 등)
                "mapping_type": "pressed",
                // 어떤 입력을 받을지
                "from_button_id": "button.menu_select",
                // 어떤 동작을 실행할지
                "to_button_id": "button.turn_doll"
            }
        ],
        // 오버라이드 가능한 변수
        "$ROTATION_AREA_root_control|default": "global.empty_panel",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "root@$ROTATION_AREA_root_control": {}
            }
        ],
        // 겹치는 순서(숫자 클수록 위)
        "layer": 245
    },
    // ???/?? ??
    "common_paperdoll": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": "$COMMON_PAPERDOLL_size",
        // 오버라이드 가능한 변수
        "$COMMON_PAPERDOLL_size|default": [
            "100%",
            "100%"
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "root@starlib_pkg_custom_renders.doll_rotation_area": {
                    // 오버라이드 가능한 변수
                    "$ROTATION_AREA_root_control": "starlib_pkg_custom_renders.paperdoll_template",
                    // 오버라이드 가능한 변수
                    "$ROTATION_AREA_size|default": [
                        "100% - 8px",
                        "100% - 8px"
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "background@style.image": {
                    // 사용할 이미지 경로
                    "texture": "$COMMON_PAPERDOLL_background_texture",
                    // 오버라이드 가능한 변수
                    "$COMMON_PAPERDOLL_background_texture|default": "",
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 235
                }
            }
        ]
    },
    // ???/?? ??
    "live_render_template": {
        // 특수 렌더러(그라디언트/플레이어 등)
        "type": "custom",
        // 커스텀 렌더러 종류
        "renderer": "player_live_render",
        // 기준점(어디에서 시작할지)
        "anchor_from": "center",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "center",
        // 오버라이드 가능한 변수
        "$LIVE_RENDER_size|default": [
            "100%",
            "100%"
        ],
        // 기준점에서 이동하는 거리
        "offset": "$LIVE_RENDER_offset",
        // 오버라이드 가능한 변수
        "$LIVE_RENDER_offset|default": [
            0,
            0
        ],
        // ????? ?? ?
        "animation_reset_name": "screen_animation_reset",
        // 애니메이션 목록
        "anims": [
            "@common.screen_exit_size_animation_push",
            "@common.screen_exit_size_animation_pop",
            "@common.screen_entrance_size_animation_push",
            "@common.screen_entrance_size_animation_pop"
        ],
        // 겹치는 순서(숫자 클수록 위)
        "layer": 245
    },
    // ???/?? ??
    "common_live_render": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": "$COMMON_LIVERENDER_size",
        // 오버라이드 가능한 변수
        "$COMMON_LIVERENDER_size|default": [
            "100%",
            "100%"
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "root@starlib_pkg_custom_renders.live_render_template": {
                    // 오버라이드 가능한 변수
                    "$LIVE_RENDER_size|default": [
                        "100% - 8px",
                        "100% - 8px"
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "background@style.image": {
                    // 사용할 이미지 경로
                    "texture": "$COMMON_LIVERENDER_background_texture",
                    // 오버라이드 가능한 변수
                    "$COMMON_LIVERENDER_background_texture|default": "",
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 235
                }
            }
        ]
    }
}

custom_toggles.jsonc StarLib · StarLibV2-1.0.3.3

필요한 부분만 참고해서 가져가세요.

// 예제: custom_toggles.jsonc
// 분류: StarLib / StarLibV2-1.0.3.3
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 by pipa_ngry
//   Please respect my work, don't pass at yours and use it for its intended purpose.
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "starlib_pkg_custom_toggles",
    // ???/?? ??
    "common_toggle": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": "$COMMON_TOGGLE_size",
        // 오버라이드 가능한 변수
        "$COMMON_TOGGLE_size|default": [
            "100%",
            24
        ],
        // 오버라이드 가능한 변수
        "$COMMON_TOGGLE_toggle_text|default": "",
        // 오버라이드 가능한 변수
        "$COMMON_TOGGLE_enable_radio|default": true,
        // 오버라이드 가능한 변수
        "$COMMON_TOGGLE_toggle_name|default": "common_toggle",
        // 오버라이드 가능한 변수
        "$COMMON_TOGGLE_toggle_index|default": 0,
        // 오버라이드 가능한 변수
        "$COMMON_TOGGLE_default_state|default": 1,
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "toggle_panel@common_toggles.light_text_toggle": {
                    // 오버라이드 가능한 변수
                    "$default_border_visible": false,
                    // 오버라이드 가능한 변수
                    "$hover_border_visible": false,
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "100%"
                    ],
                    // 오버라이드 가능한 변수
                    "$toggle_name": "common_toggle",
                    // 오버라이드 가능한 변수
                    "$button_text": "$COMMON_TOGGLE_toggle_text",
                    // 오버라이드 가능한 변수
                    "$toggle_view_binding_name": "$COMMON_TOGGLE_toggle_name",
                    // 오버라이드 가능한 변수
                    "$radio_toggle_group": "$COMMON_TOGGLE_enable_radio",
                    // 오버라이드 가능한 변수
                    "$toggle_group_default_selected": "$COMMON_TOGGLE_default_state",
                    // 오버라이드 가능한 변수
                    "$toggle_group_forced_index": "$COMMON_TOGGLE_toggle_index"
                }
            }
        ]
    },
    // ???/?? ??
    "tab_view_binding": {
        // 오버라이드 가능한 변수
        "$toggle_name|default": "common_toggle",
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // ?? ??
                "source_control_name": "$toggle_name",
                // 계산식/참조 값
                "source_property_name": "#toggle_state",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ]
    }
}

dynamic_sizer.jsonc StarLib · StarLibV2-1.0.3.3

필요한 부분만 참고해서 가져가세요.

// 예제: dynamic_sizer.jsonc
// 분류: StarLib / StarLibV2-1.0.3.3
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 by pipa_ngry
//   Please respect my work, don't pass at yours and use it for its intended purpose.
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "starlib_pkg_dynamic_sizer",
    // ???/?? ??
    "third_sizer_template": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 쌓는 방향(가로/세로)
        "orientation": "horizontal",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%cm"
        ],
        // 오버라이드 가능한 변수
        "$BUTTON_SIZER_third_output|default": "style.dme_06",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "left_padding@global.binding": {
                    // 오버라이드 가능한 변수
                    "$BUTTON_SIZER_left_third|default": "",
                    // 오버라이드 가능한 변수
                    "$key": "$BUTTON_SIZER_left_third",
                    // 가로/세로 크기
                    "size": [
                        "33.3%",
                        0
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "output@$BUTTON_SIZER_third_output": {
                    // 가로/세로 크기
                    "size": [
                        "fill",
                        "100%c"
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "right_padding@global.binding": {
                    // 오버라이드 가능한 변수
                    "$BUTTON_SIZER_right_third|default": "",
                    // 오버라이드 가능한 변수
                    "$key": "$BUTTON_SIZER_right_third",
                    // 가로/세로 크기
                    "size": [
                        "33.3%",
                        0
                    ]
                }
            }
        ]
    },
    // ???/?? ??
    "half_sizer_template": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 쌓는 방향(가로/세로)
        "orientation": "horizontal",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%cm"
        ],
        // 오버라이드 가능한 변수
        "$BUTTON_SIZER_half_output|default": "style.dme_07",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "left_padding@global.binding": {
                    // 오버라이드 가능한 변수
                    "$BUTTON_SIZER_left_half|default": "",
                    // 오버라이드 가능한 변수
                    "$key": "$BUTTON_SIZER_left_half",
                    // 가로/세로 크기
                    "size": [
                        "50%",
                        0
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "output@$BUTTON_SIZER_half_output": {
                    // 가로/세로 크기
                    "size": [
                        "fill",
                        "100%c"
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "right_padding@global.binding": {
                    // 오버라이드 가능한 변수
                    "$BUTTON_SIZER_right_half|default": "",
                    // 오버라이드 가능한 변수
                    "$key": "$BUTTON_SIZER_right_half",
                    // 가로/세로 크기
                    "size": [
                        "50%",
                        0
                    ]
                }
            }
        ]
    },
    // ???/?? ??
    "custom_sizer_template": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 쌓는 방향(가로/세로)
        "orientation": "horizontal",
        // 가로/세로 크기
        "size": "$BUTTON_SIZER_custom_panel_size",
        // 오버라이드 가능한 변수
        "$BUTTON_SIZER_custom_panel_size|default": [
            "100%",
            "100%cm"
        ],
        // 오버라이드 가능한 변수
        "$BUTTON_SIZER_custom_output|default": "style.dme_08",
        // 오버라이드 가능한 변수
        "$BUTTON_SIZER_custom_size|default": [
            0,
            0
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "left_padding@global.binding": {
                    // 오버라이드 가능한 변수
                    "$BUTTON_SIZER_left_custom|default": "",
                    // 오버라이드 가능한 변수
                    "$key": "$BUTTON_SIZER_left_custom",
                    // 가로/세로 크기
                    "size": "$BUTTON_SIZER_custom_size"
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "output@$BUTTON_SIZER_custom_output": {
                    // 가로/세로 크기
                    "size": "$BUTTON_SIZER_custom_output_size",
                    // 오버라이드 가능한 변수
                    "$BUTTON_SIZER_custom_output_size|default": [
                        "fill",
                        "100%c"
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "right_padding@global.binding": {
                    // 오버라이드 가능한 변수
                    "$BUTTON_SIZER_right_custom|default": "",
                    // 오버라이드 가능한 변수
                    "$key": "$BUTTON_SIZER_right_custom",
                    // 가로/세로 크기
                    "size": "$BUTTON_SIZER_custom_size"
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "common_auto_sizer@starlib_pkg_dynamic_sizer.third_sizer_template": {
        // 오버라이드 가능한 변수
        "$BUTTON_SIZER_third_output": "starlib_pkg_dynamic_sizer.half_sizer_template",
        // 오버라이드 가능한 변수
        "$BUTTON_SIZER_half_output": "starlib_pkg_dynamic_structure.vertical_processing_panel"
    }
}

dynamic_structure.jsonc StarLib · StarLibV2-1.0.3.3

필요한 부분만 참고해서 가져가세요.

// 예제: dynamic_structure.jsonc
// 분류: StarLib / StarLibV2-1.0.3.3
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 by pipa_ngry
//   Please respect my work, don't pass at yours and use it for its intended purpose.
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "starlib_pkg_dynamic_structure",
    // ???/?? ??
    "dynamic_item_with_background": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 쌓는 방향(가로/세로)
        "orientation": "vertical",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%c"
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "top_padding@style.image": {
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_ITEM_top_padding_key|default": "",
                    // 가로/세로 크기
                    "size": "$DYNAMIC_ITEM_top_padding_size",
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_ITEM_top_padding_size|default": [
                        "100%",
                        3
                    ],
                    // 사용할 이미지 경로
                    "texture": "$DYNAMIC_ITEM_top_padding_texture",
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_ITEM_top_padding_texture|default": "",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": "$DYNAMIC_ITEM_top_padding_bindings",
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_ITEM_top_padding_bindings|default": [
                        {
                            // 목록 이름
                            "binding_collection_name": "form_buttons",
                            // 가져올 값 이름
                            "binding_name": "#form_button_text",
                            // 목록 데이터를 반복 연결
                            "binding_type": "collection"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(not((#form_button_text - $DYNAMIC_ITEM_top_padding_key) = #form_button_text))",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(not((#form_button_text - $DYNAMIC_ITEM_top_padding_key) = #form_button_text))",
                            // 결과가 들어갈 속성
                            "target_property_name": "#enabled"
                        }
                    ]
                }
            },
            {
                // ???/?? ??
                "dynamic_item_main": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "100%cm"
                    ],
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_ITEM_root_control|default": "style.dme_02",
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // ???/?? ??
                            "root": {
                                // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                                "type": "stack_panel",
                                // 쌓는 방향(가로/세로)
                                "orientation": "horizontal",
                                // 가로/세로 크기
                                "size": [
                                    "100%",
                                    "100%c"
                                ],
                                // 오버라이드 가능한 변수
                                "$DYNAMIC_ITEM_side_paddings_size|default": [
                                    3,
                                    0
                                ],
                                // 이 안에 들어가는 부품 목록
                                "controls": [
                                    {
                                        // ???/?? ??
                                        "left_padding": {
                                            // 패널: 다른 부품을 담는 바닥판
                                            "type": "panel",
                                            // 가로/세로 크기
                                            "size": "$DYNAMIC_ITEM_side_paddings_size"
                                        }
                                    },
                                    {
                                        // ???/?? ??
                                        "root_root": {
                                            // 패널: 다른 부품을 담는 바닥판
                                            "type": "panel",
                                            // 가로/세로 크기
                                            "size": [
                                                "fill",
                                                "100%c"
                                            ],
                                            // 이 안에 들어가는 부품 목록
                                            "controls": [
                                                {
                                                    // 다른 템플릿을 가져와서 확장(상속)
                                                    "root@$DYNAMIC_ITEM_root_control": {}
                                                }
                                            ]
                                        }
                                    },
                                    {
                                        // ???/?? ??
                                        "right_padding": {
                                            // 패널: 다른 부품을 담는 바닥판
                                            "type": "panel",
                                            // 가로/세로 크기
                                            "size": "$DYNAMIC_ITEM_side_paddings_size"
                                        }
                                    }
                                ]
                            }
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "background@style.image": {
                                // 가로/세로 크기
                                "size": [
                                    "100%",
                                    "100%sm"
                                ],
                                // 사용할 이미지 경로
                                "texture": "$DYNAMIC_ITEM_background_texture",
                                // 오버라이드 가능한 변수
                                "$DYNAMIC_ITEM_background_texture|default": "",
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": "$DYNAMIC_ITEM_background_bindings",
                                // 오버라이드 가능한 변수
                                "$DYNAMIC_ITEM_background_bindings|default": [
                                    {
                                        // 목록 이름
                                        "binding_collection_name": "form_buttons",
                                        // 가져올 값 이름
                                        "binding_name": "#form_button_text",
                                        // 목록 데이터를 반복 연결
                                        "binding_type": "collection"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "((#form_button_text - $VERTICAL_PROCESSING_no_height_key) = #form_button_text)",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "((#form_button_text - $VERTICAL_PROCESSING_no_height_key) = #form_button_text)",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#enabled"
                                    }
                                ]
                            }
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "bottom_padding@style.image": {
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_ITEM_bottom_padding_key|default": "",
                    // 가로/세로 크기
                    "size": "$DYNAMIC_ITEM_bottom_padding_size",
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_ITEM_bottom_padding_size|default": [
                        "100%",
                        3
                    ],
                    // 사용할 이미지 경로
                    "texture": "$DYNAMIC_ITEM_bottom_padding_texture",
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_ITEM_bottom_padding_texture|default": "",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": "$DYNAMIC_ITEM_bottom_padding_bindings",
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_ITEM_bottom_padding_bindings|default": [
                        {
                            // 목록 이름
                            "binding_collection_name": "form_buttons",
                            // 가져올 값 이름
                            "binding_name": "#form_button_text",
                            // 목록 데이터를 반복 연결
                            "binding_type": "collection"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(not((#form_button_text - $DYNAMIC_ITEM_bottom_padding_key) = #form_button_text))",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(not((#form_button_text - $DYNAMIC_ITEM_bottom_padding_key) = #form_button_text))",
                            // 결과가 들어갈 속성
                            "target_property_name": "#enabled"
                        }
                    ]
                }
            }
        ]
    },
    // ???/?? ??
    "dynamic_item_template": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%c"
        ],
        // 오버라이드 가능한 변수
        "$DYNAMIC_ITEM_entry|default": "style.dme_03",
        // 게임 값과 연결하는 규칙 목록
        "bindings": "$DYNAMIC_ITEM_bindings",
        // 오버라이드 가능한 변수
        "$DYNAMIC_ITEM_bindings|default": [],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "entry@$DYNAMIC_ITEM_entry": {}
            }
        ]
    },
    // ???/?? ??
    "uncollizeble_content_dynamic_item": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 쌓는 방향(가로/세로)
        "orientation": "vertical",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%c"
        ],
        // 오버라이드 가능한 변수
        "$DYNAMIC_ITEM_uncollizeble_content_control|default": "style.dme_12",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "uncolilzeble_content@$DYNAMIC_ITEM_uncollizeble_content_control": {}
            },
            {
                // ???/?? ??
                "padding": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": "$DYNAMIC_ITEM_between_contents_padding_size",
                    // 오버라이드 가능한 변수
                    "$DYNAMIC_ITEM_between_contents_padding_size|default": [
                        0,
                        1
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "dynamic_item_main@starlib_pkg_dynamic_structure.dynamic_item_template": {}
            }
        ]
    },
    // ???/?? ??
    "vertical_processing_panel": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%c"
        ],
        // 오버라이드 가능한 변수
        "$VERTICAL_PROCESSING_sizer_template_control|default": "starlib_pkg_dynamic_structure.vertical_sizer_template",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "vertical_buffer": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        0
                    ],
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "top_left",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "top_left",
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // ???/?? ??
                            "post_processing_panel": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [
                                    "100%",
                                    "100%cm"
                                ],
                                // 기준점(어디에서 시작할지)
                                "anchor_from": "top_left",
                                // 붙일 위치(어디에 놓을지)
                                "anchor_to": "top_left",
                                // 오버라이드 가능한 변수
                                "$VERTICAL_PROCESSING_output_control|default": "style.dme_13",
                                // 이 안에 들어가는 부품 목록
                                "controls": [
                                    {
                                        // ???/?? ??
                                        "button": {
                                            // 패널: 다른 부품을 담는 바닥판
                                            "type": "panel",
                                            // 가로/세로 크기
                                            "size": [
                                                "100%",
                                                "100%sm"
                                            ],
                                            // 이 안에 들어가는 부품 목록
                                            "controls": [
                                                {
                                                    // 다른 템플릿을 가져와서 확장(상속)
                                                    "button@$VERTICAL_PROCESSING_output_control": {}
                                                }
                                            ]
                                        }
                                    },
                                    {
                                        // 다른 템플릿을 가져와서 확장(상속)
                                        "vertical_sizer@$VERTICAL_PROCESSING_sizer_template_control": {}
                                    }
                                ]
                            }
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "vertical_sizer@$VERTICAL_PROCESSING_sizer_template_control": {
                    // 오버라이드 가능한 변수
                    "$VERTICAL_PROCESSING_no_height_key|default": "",
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 목록 이름
                            "binding_collection_name": "form_buttons",
                            // 가져올 값 이름
                            "binding_name": "#form_button_text",
                            // 목록 데이터를 반복 연결
                            "binding_type": "collection"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "((#form_button_text - $VERTICAL_PROCESSING_no_height_key) = #form_button_text)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "((#form_button_text - $VERTICAL_PROCESSING_no_height_key) = #form_button_text)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#enabled"
                        }
                    ]
                }
            }
        ]
    },
    // ???/?? ??
    "vertical_sizer_template": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 쌓는 방향(가로/세로)
        "orientation": "vertical",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%c"
        ],
        // 이 안에 들어가는 부품 목록
        "controls": "$VERTICAL_SIZER_controls",
        // 오버라이드 가능한 변수
        "$VERTICAL_SIZER_controls|default": [
            {
                // ???/?? ??
                "default_default": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        32
                    ]
                }
            }
        ]
    }
}

global.jsonc StarLib · StarLibV2-1.0.3.3

필요한 부분만 참고해서 가져가세요.

// 예제: global.jsonc
// 분류: StarLib / StarLibV2-1.0.3.3
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 by pipa_ngry
//   Please respect my work, don't pass at yours and use it for its intended purpose.
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "global",
    // ???/?? ??
    "binding": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 오버라이드 가능한 변수
        "$key|default": "",
        // 보이기/숨기기(공간 유지)
        "visible": false,
        // ??/???
        "enabled": false,
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 목록 이름
                "binding_collection_name": "form_buttons",
                // 가져올 값 이름
                "binding_name": "#form_button_text",
                // 목록 데이터를 반복 연결
                "binding_type": "collection"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(not((#form_button_text - $key) = #form_button_text))",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(not((#form_button_text - $key) = #form_button_text))",
                // 결과가 들어갈 속성
                "target_property_name": "#enabled"
            }
        ],
        // 오버라이드 가능한 변수
        "$control|default": "global.empty_panel",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "control@$control": {}
            }
        ]
    },
    // ???/?? ??
    "reverse_binding": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 오버라이드 가능한 변수
        "$key|default": "",
        // 보이기/숨기기(공간 유지)
        "visible": true,
        // ??/???
        "enabled": true,
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 목록 이름
                "binding_collection_name": "form_buttons",
                // 가져올 값 이름
                "binding_name": "#form_button_text",
                // 목록 데이터를 반복 연결
                "binding_type": "collection"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "((#form_button_text - $key) = #form_button_text)",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "((#form_button_text - $key) = #form_button_text)",
                // 결과가 들어갈 속성
                "target_property_name": "#enabled"
            }
        ],
        // 오버라이드 가능한 변수
        "$control|default": "global.empty_panel",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "control@$control": {}
            }
        ]
    },
    // ???/?? ??
    "title_binding": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 오버라이드 가능한 변수
        "$key|default": "",
        // 보이기/숨기기(공간 유지)
        "visible": false,
        // ??/???
        "enabled": false,
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#title_text",
                // 게임이 주는 전역 값 연결
                "binding_type": "global"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(not((#title_text - $key) = #title_text))",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(not((#title_text - $key) = #title_text))",
                // 결과가 들어갈 속성
                "target_property_name": "#enabled"
            }
        ],
        // 오버라이드 가능한 변수
        "$control|default": "global.empty_panel",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "control@$control": {}
            }
        ]
    },
    // ???/?? ??
    "reverse_title_binding": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 오버라이드 가능한 변수
        "$key|default": "",
        // 보이기/숨기기(공간 유지)
        "visible": true,
        // ??/???
        "enabled": true,
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#title_text",
                // 게임이 주는 전역 값 연결
                "binding_type": "global"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "((#title_text - $key) = #title_text)",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "((#title_text - $key) = #title_text)",
                // 결과가 들어갈 속성
                "target_property_name": "#enabled"
            }
        ],
        // 오버라이드 가능한 변수
        "$control|default": "global.empty_panel",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "control@$control": {}
            }
        ]
    },
    // ???/?? ??
    "range_selection_binding": {
      // 패널: 다른 부품을 담는 바닥판
      "type": "panel",
      // 오버라이드 가능한 변수
      "$from|default": "",
      // 오버라이드 가능한 변수
      "$to|default": "",
      // 보이기/숨기기(공간 유지)
      "visible": false,
      // ??/???
      "enabled": false,
      // 게임 값과 연결하는 규칙 목록
      "bindings": [
          {
              // 목록 이름
              "binding_collection_name": "form_buttons",
              // 가져올 값 이름
              "binding_name": "#form_button_text",
              // 목록 데이터를 반복 연결
              "binding_type": "collection"
          },
          {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(((('%.' + $to + 's') * #form_button_text) - (('%.' + $from + 's') * #form_button_text)) - '\t')",
              // 결과가 들어갈 속성
              "target_property_name": "#text"
          },
          {
              // 계산식/참조 값
              "source_property_name": "(not(#text = ''))",
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
          }
      ]
   },
    // 다른 템플릿을 가져와서 확장(상속)
    "scrolling_panel@common.scrolling_panel": {
        // 오버라이드 가능한 변수
        "$scroll_bar_contained|default": false,
        // 오버라이드 가능한 변수
        "$scroll_bar_left_padding_size|default": [
          3,
          0
        ],
        // 오버라이드 가능한 변수
        "$scroll_bar_right_padding_size|default": [
          0,
          0
        ],
        // 오버라이드 가능한 변수
        "$scroll_size|default": [
          5,
          "100%"
        ],
        // 오버라이드 가능한 변수
        "$scroll_view_port_offset|default": [
          0,
          0
        ],
        // 오버라이드 가능한 변수
        "$scrolling_pane_offset|default": [
          0,
          0
        ],
        // 오버라이드 가능한 변수
        "$scrolling_pane_size|default": [
          "100%",
          "100%"
        ],
        // 오버라이드 가능한 변수
        "$scrolling_content|default": "style.dme_14",
        // 오버라이드 가능한 변수
        "$show_background|default": false,
        // 기준점(어디에서 시작할지)
        "anchor_from": "center",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "center",
        // 가로/세로 크기
        "size": [
          "100%",
          "100%"
        ]
    },
    // ???/?? ??
    "empty_panel": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            0,
            0
        ]
    },
    // ???/?? ??
    "button_factory": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 쌓는 방향(가로/세로)
        "orientation": "vertical",
        // 가로/세로 크기
        "size": [
          "100%",
          "100%c"
        ],
        // 오버라이드 가능한 변수
        "$factory_item|default": "style.dme_04",
        // 목록 아이템을 자동으로 생성
        "factory": {
          // ?? ??
          "name": "buttons",
          // ??? ???
          "control_name": "$factory_item"
        },
        // 목록 이름
        "collection_name": "form_buttons",
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#form_button_length",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#collection_length"
            }
        ]
    },
    // ???/?? ??
    "grid": {
        // 격자 컨테이너: 칸칸이 배치
        "type": "grid",
        // 오버라이드 가능한 변수
        "$grid_item|default": "style.dme_05",
        // ??? ?? ?
        "grid_item_template": "$grid_item",
        // ??? ?? ?
        "grid_rescaling_type": "horizontal",
        // 목록 이름
        "collection_name": "form_buttons",
        // 가로/세로 크기
        "size": [
          "100%",
          "100%c"
        ],
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#maximum_grid_items",
                // 가져올 값 이름
                "binding_name": "#form_button_length"
            }
        ]
    }
}

screen_common.jsonc StarLib · StarLibV2-1.0.3.3

필요한 부분만 참고해서 가져가세요.

// 예제: screen_common.jsonc
// 분류: StarLib / StarLibV2-1.0.3.3
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 by pipa_ngry
//   Please respect my work, don't pass at yours and use it for its intended purpose.
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "starlib_pkg_screen_common",
    // 다른 템플릿을 가져와서 확장(상속)
    "title_template@style.label": {
        // 보여줄 글자
        "text": "#title_text",
        // ???/?? ??
        "max_size": [
            "100%",
            "100%"
        ],
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#title_text",
                // 게임이 주는 전역 값 연결
                "binding_type": "global"
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "close_button_template@common.button": {
        // 오버라이드 가능한 변수
        "$pressed_button_name": "button.menu_exit",
        // 가로/세로 크기
        "size": "$CLOSE_BUTTON_size",
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_size|default": [
            15,
            15
        ],
        // 겹치는 순서(숫자 클수록 위)
        "layer": 32,
        // ??? ??
        "sound_name": "$CLOSE_BUTTON_sound_name",
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_sound_name|default": "random.click",
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_default_control|default": "style.close_button_default",
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_hover_control|default": "style.close_button_hover",
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_pressed_control|default": "$CLOSE_BUTTON_hover_control",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "default@$CLOSE_BUTTON_default_control": {}
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "hover@$CLOSE_BUTTON_hover_control": {}
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "pressed@$CLOSE_BUTTON_pressed_control": {}
            }
        ]
    },
    // ???/?? ??
    "async_close_button": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": "$CLOSE_BUTTON_size",
        // 오버라이드 가능한 변수
        "$CLOSE_BUTTON_size|default": [
            15,
            15
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "close_button_text@style.label": {
                    // ?? ??
                    "localize": true,
                    // 보여줄 글자
                    "text": "gui.close",
                    // ??
                    "font_type": "$CLOSE_BUTTON_text_font_type",
                    // 오버라이드 가능한 변수
                    "$CLOSE_BUTTON_text_font_type|default": "MinecraftTen",
                    // ???/?? ??
                    "max_size": [
                        "100%",
                        "100%"
                    ],
                    // 기준점에서 이동하는 거리
                    "offset": "$CLOSE_BUTTON_text_offset",
                    // 오버라이드 가능한 변수
                    "$CLOSE_BUTTON_text_offset|default": [
                        0,
                        0
                    ],
                    // 보이기/숨기기(공간 유지)
                    "visible": "$CLOSE_BUTTON_text_enabled",
                    // 오버라이드 가능한 변수
                    "$CLOSE_BUTTON_text_enabled|default": false
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "close_button_icon@style.image": {
                    // 사용할 이미지 경로
                    "texture": "$CLOSE_BUTTON_icon_texture",
                    // 오버라이드 가능한 변수
                    "$CLOSE_BUTTON_icon_texture|default": "",
                    // 가로/세로 크기
                    "size": "$CLOSE_BUTTON_icon_size",
                    // 오버라이드 가능한 변수
                    "$CLOSE_BUTTON_icon_size|default": [
                        "100%",
                        "100%"
                    ],
                    // 기준점에서 이동하는 거리
                    "offset": "$CLOSE_BUTTON_icon_offset",
                    // 오버라이드 가능한 변수
                    "$CLOSE_BUTTON_icon_offset|default": [
                        0,
                        0
                    ],
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 38
                }
            },
            {
                // ???/?? ??
                "close_button_root": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "100%"
                    ],
                    // 오버라이드 가능한 변수
                    "$CLOSE_BUTTON_default_control|default": "style.black",
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "style@$CLOSE_BUTTON_default_control": {
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": 24
                            }
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "root@starlib_pkg_screen_common.close_button_template": {
                                // 오버라이드 가능한 변수
                                "$CLOSE_BUTTON_size": [
                                    "100%",
                                    "100%"
                                ],
                                // 오버라이드 가능한 변수
                                "$CLOSE_BUTTON_default_control": "global.empty_panel"
                            }
                        }
                    ]
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "form_text_template@style.label": {
        // 보여줄 글자
        "text": "#form_text",
        // ?? ??
        "text_alignment": "left",
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(not(#form_text = ''))",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ]
    }
}

screen_template.jsonc StarLib · StarLibV2-1.0.3.3

필요한 부분만 참고해서 가져가세요.

// 예제: screen_template.jsonc
// 분류: StarLib / StarLibV2-1.0.3.3
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 by pipa_ngry
//   Please respect my work, don't pass at yours and use it for its intended purpose.
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "starlib_pkg_screen_template",
    // ???/?? ??
    "screen": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%"
        ],
        // 오버라이드 가능한 변수
        "$SCREEN_TEMPLATE_fade_control|default": "style.fade",
        // 오버라이드 가능한 변수
        "$SCREEN_TEMPLATE_frame_control|default": "style.white_frame",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "fade@$SCREEN_TEMPLATE_fade_control": {
                    // 오버라이드 가능한 변수
                    "$SCREEN_TEMPLATE_fade_enabled|default": false,
                    // 보이기/숨기기(공간 유지)
                    "visible": "$SCREEN_TEMPLATE_fade_enabled",
                    // 가로/세로 크기
                    "size": [
                        "200%",
                        "200%"
                    ],
                    // ???
                    "alpha": "$SCREEN_TEMPLATE_fade_alpha",
                    // 오버라이드 가능한 변수
                    "$SCREEN_TEMPLATE_fade_alpha|default": 0.3
                }
            },
            {
                // ???/?? ??
                "screen": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [
                        "100%cm",
                        "100%cm"
                    ],
                    // ???/?? ??
                    "max_size": [
                        "100% - 20px",
                        "100% - 20px"
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // ???/?? ??
                            "forms_holder": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [
                                    "100%cm",
                                    "100%cm"
                                ],
                                // 이 안에 들어가는 부품 목록
                                "controls": "$forms_holder_controls",
                                // 오버라이드 가능한 변수
                                "$forms_holder_controls|default": [
                                    {
                                        // 다른 템플릿을 가져와서 확장(상속)
                                        "main@starlib_pkg_screen_template.form_template": {}
                                    }
                                ]
                            }
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "frame@$SCREEN_TEMPLATE_frame_control": {
                                // 오버라이드 가능한 변수
                                "$SCREEN_TEMPLATE_frame_enabled|default": false,
                                // 보이기/숨기기(공간 유지)
                                "visible": "$SCREEN_TEMPLATE_frame_enabled",
                                // 가로/세로 크기
                                "size": [
                                    "100%sm + 2px",
                                    "100%sm + 2px"
                                ]
                            }
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "screen_background@style.image": {
                    // 사용할 이미지 경로
                    "texture": "$SCREEN_TEMPLATE_background_texture",
                    // 오버라이드 가능한 변수
                    "$SCREEN_TEMPLATE_background_texture|default": "",
                    // ?? ??
                    "fill": true,
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 4
                }
            }
        ]
    },
    // ???/?? ??
    "form_template": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": "$form_size",
        // 오버라이드 가능한 변수
        "$form_size|default": [
            300,
            255
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "root": {
                    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                    "type": "stack_panel",
                    // 쌓는 방향(가로/세로)
                    "orientation": "vertical",
                    // 가로/세로 크기
                    "size": "$FORM_TEMPLATE_root_size",
                    // 오버라이드 가능한 변수
                    "$FORM_TEMPLATE_root_size|default": [
                        "100%",
                        "100%"
                    ],
                    // 오버라이드 가능한 변수
                    "$FORM_TEMPLATE_header_control|default": "starlib_pkg_screen_template.header_template",
                    // 오버라이드 가능한 변수
                    "$FORM_TEMPLATE_content_control|default": "starlib_pkg_screen_template.content_template",
                    // 오버라이드 가능한 변수
                    "$FORM_TEMPLATE_sub_content_control|default": "global.empty_panel",
                    // 오버라이드 가능한 변수
                    "$FORM_TEMPLATE_background_control|default": "style.image",
                    // 오버라이드 가능한 변수
                    "$FORM_TEMPLATE_between_contents_padding_texture|default": "",
                    // 오버라이드 가능한 변수
                    "$FORM_TEMPLATE_between_contents_padding_size|default": [
                        0,
                        0
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "header_control@$FORM_TEMPLATE_header_control": {}
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "padding_top@style.image": {
                                // 사용할 이미지 경로
                                "texture": "$FORM_TEMPLATE_between_contents_padding_texture",
                                // 가로/세로 크기
                                "size": "$FORM_TEMPLATE_between_contents_padding_size",
                                // 보이기/숨기기(공간 유지)
                                "visible": "$FORM_TEMPLATE_appear_header_padding",
                                // 오버라이드 가능한 변수
                                "$FORM_TEMPLATE_appear_header_padding|default": true
                            }
                        },
                        {
                            // ???/?? ??
                            "root_screen": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [
                                    "100%",
                                    "fill"
                                ],
                                // 이 안에 들어가는 부품 목록
                                "controls": [
                                    {
                                        // 다른 템플릿을 가져와서 확장(상속)
                                        "content@$FORM_TEMPLATE_content_control": {
                                            // 가로/세로 크기
                                            "size": "$FORM_TEMPLATE_content_size",
                                            // 오버라이드 가능한 변수
                                            "$FORM_TEMPLATE_content_size|default": [
                                                "100% - 8px",
                                                "100% - 8px"
                                            ],
                                            // 기준점에서 이동하는 거리
                                            "offset": "$FORM_TEMPLATE_content_offset",
                                            // 오버라이드 가능한 변수
                                            "$FORM_TEMPLATE_content_offset|default": [
                                                0,
                                                0
                                            ]
                                        }
                                    },
                                    {
                                        // 다른 템플릿을 가져와서 확장(상속)
                                        "background@$FORM_TEMPLATE_background_control": {
                                            // 사용할 이미지 경로
                                            "texture": "$FORM_TEMPLATE_background_texture",
                                            // 오버라이드 가능한 변수
                                            "$FORM_TEMPLATE_background_texture|default": ""
                                        }
                                    }
                                ]
                            }
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "padding_bottom@style.image": {
                                // 사용할 이미지 경로
                                "texture": "$FORM_TEMPLATE_between_contents_padding_texture",
                                // 가로/세로 크기
                                "size": "$FORM_TEMPLATE_between_contents_padding_size",
                                // 보이기/숨기기(공간 유지)
                                "visible": "$FORM_TEMPLATE_appear_sub_contents_padding",
                                // 오버라이드 가능한 변수
                                "$FORM_TEMPLATE_appear_sub_contents_padding|default": false
                            }
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "sub_content_control@$FORM_TEMPLATE_sub_content_control": {}
                        }
                    ],
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 16
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "form_background@style.image": {
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "100%"
                    ],
                    // 사용할 이미지 경로
                    "texture": "$FORM_TEMPLATE_form_background_texture",
                    // 오버라이드 가능한 변수
                    "$FORM_TEMPLATE_form_background_texture|default": "",
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 10
                }
            }
        ]
    },
    // ???/?? ??
    "header_template": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": "$HEADER_TEMPLATE_size",
        // 오버라이드 가능한 변수
        "$HEADER_TEMPLATE_size|default": [
            "100%",
            24
        ],
        // 오버라이드 가능한 변수
        "$HEADER_TEMPLATE_style_control|default": "style.black",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "style_control@$HEADER_TEMPLATE_style_control": {}
            },
            {
                // ???/?? ??
                "header_contents": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": "$HEADER_TEMPLATE_contents_size",
                    // 오버라이드 가능한 변수
                    "$HEADER_TEMPLATE_contents_size|default": [
                        "100%",
                        "100%"
                    ],
                    // 기준점에서 이동하는 거리
                    "offset": "$HEADER_TEMPLATE_contents_offset",
                    // 오버라이드 가능한 변수
                    "$HEADER_TEMPLATE_contents_offset|default": [
                        0,
                        0
                    ],
                    // 오버라이드 가능한 변수
                    "$HEADER_TEMPLATE_title_control|default": "starlib_pkg_screen_common.title_template",
                    // 오버라이드 가능한 변수
                    "$HEADER_TEMPLATE_close_button_control|default": "starlib_pkg_screen_template.close_button",
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "title_control@$HEADER_TEMPLATE_title_control": {
                                // ???/?? ??
                                "max_size": [
                                    "100%",
                                    "100%"
                                ]
                            }
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "close_button_control@$HEADER_TEMPLATE_close_button_control": {}
                        }
                    ]
                }
            }
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "close_button@starlib_pkg_screen_common.close_button_template": {
        // 기준점(어디에서 시작할지)
        "anchor_from": "right_middle",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "right_middle",
        // 기준점에서 이동하는 거리
        "offset": [
            -5,
            0
        ]
    },
    // ???/?? ??
    "content_template": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 쌓는 방향(가로/세로)
        "orientation": "vertical",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%"
        ],
        // 오버라이드 가능한 변수
        "$CONTENT_header_content_control|default": "global.empty_panel",
        // 오버라이드 가능한 변수
        "$CONTENT_between_contents_padding_size|default": [
            0,
            0
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "content_header@$CONTENT_header_content_control": {}
            },
            {
                // ???/?? ??
                "padding": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": "$CONTENT_between_contents_padding_size",
                    // 보이기/숨기기(공간 유지)
                    "visible": "$CONTENT_appear_main_contents_padding",
                    // 오버라이드 가능한 변수
                    "$CONTENT_appear_main_contents_padding|default": false
                }
            },
            {
                // ???/?? ??
                "root_content": {
                    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                    "type": "stack_panel",
                    // 쌓는 방향(가로/세로)
                    "orientation": "horizontal",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "fill"
                    ],
                    // 오버라이드 가능한 변수
                    "$CONTENT_enable_paperdoll|default": false,
                    // 오버라이드 가능한 변수
                    "$CONTENT_paperdoll_control|default": "starlib_pkg_custom_renders.common_paperdoll",
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "paperdoll@$CONTENT_paperdoll_control": {
                                // 보이기/숨기기(공간 유지)
                                "visible": "$CONTENT_enable_paperdoll",
                                // ??/???
                                "enabled": "$CONTENT_enable_paperdoll",
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": "$CONTENT_paperdoll_bindings",
                                // 오버라이드 가능한 변수
                                "$CONTENT_paperdoll_bindings|default": []
                            }
                        },
                        {
                            // ???/?? ??
                            "padding": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": "$CONTENT_between_contents_padding_size",
                                // 보이기/숨기기(공간 유지)
                                "visible": "$CONTENT_appear_root_contents_padding",
                                // 오버라이드 가능한 변수
                                "$CONTENT_appear_root_contents_padding|default": true
                            }
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "scrolling_panel@global.scrolling_panel": {
                                // 오버라이드 가능한 변수
                                "$scrolling_content|default": "starlib_pkg_screen_template.scrolling_content_template",
                                // 가로/세로 크기
                                "size": [
                                    "fill",
                                    "100%"
                                ]
                            }
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "fix@global.empty_panel": {}
                        }
                    ]
                }
            }
        ]
    },
    // ???/?? ??
    "scrolling_content_template": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 쌓는 방향(가로/세로)
        "orientation": "vertical",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%c"
        ],
        // 오버라이드 가능한 변수
        "$SCROLLING_CONTENT_form_text_control|default": "starlib_pkg_screen_common.form_text_template",
        // 오버라이드 가능한 변수
        "$SCROLLING_CONTENT_main_control|default": "global.button_factory",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "form_text": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "100%c"
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "form_text@$SCROLLING_CONTENT_form_text_control": {}
                        }
                    ]
                }
            },
            {
                // ???/?? ??
                "additional_content": {
                    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                    "type": "stack_panel",
                    // 쌓는 방향(가로/세로)
                    "orientation": "vertical",
                    // 가로/세로 크기
                    "size": [
                        "100%",
                        "100%c"
                    ],
                    // 오버라이드 가능한 변수
                    "$SCROLLING_CONTENT_additional_content_margins_size|default": [
                        0,
                        0
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // ???/?? ??
                            "top_margin": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": "$SCROLLING_CONTENT_additional_content_margins_size"
                            }
                        },
                        {
                            // ???/?? ??
                            "additional_content_root": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [
                                    "100%",
                                    "100%c"
                                ],
                                // 오버라이드 가능한 변수
                                "$SCROLLING_CONTENT_additional_content_root_control|default": "global.empty_panel",
                                // 이 안에 들어가는 부품 목록
                                "controls": [
                                    {
                                        // 다른 템플릿을 가져와서 확장(상속)
                                        "additional_content_root@$SCROLLING_CONTENT_additional_content_root_control": {}
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "bottom_margin": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": "$SCROLLING_CONTENT_additional_content_margins_size"
                            }
                        }
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "main@$SCROLLING_CONTENT_main_control": {
                    // 오버라이드 가능한 변수
                    "$factory_item|default": "$button_item_control",
                    // 오버라이드 가능한 변수
                    "$button_item_control|default": "style.dme_01"
                }
            }
        ]
    }
}

style.jsonc StarLib · StarLibV2-1.0.3.3

필요한 부분만 참고해서 가져가세요.

// 예제: style.jsonc
// 분류: StarLib / StarLibV2-1.0.3.3
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
//=======================================
//
//   Website & Documentation - https://pipangry.github.io/docs-starlib
//
//   StarLibV2 by pipa_ngry
//   Please respect my work, don't pass at yours and use it for its intended purpose.
//   Thanks =)
//
//=======================================
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "style",
    // ???/?? ??
    "label": {
        // 글자 표시
        "type": "label",
        // ?? ??
        "text_alignment": "center",
        // ??
        "font_type": "MinecraftSeven",
        // ?? ?? ?
        "font_size": "normal",
        // 가로/세로 크기
        "size": [
            "100%",
            "default"
        ],
        // 오버라이드 가능한 변수
        "$label_layer|default": 58,
        // 겹치는 순서(숫자 클수록 위)
        "layer": "$label_layer",
        // 보여줄 글자
        "text": "§7You forgot to write the text >=("
    },
    // ???/?? ??
    "image": {
        // 이미지 표시
        "type": "image",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%"
        ],
        // 사용할 이미지 경로
        "texture": "",
        // 겹치는 순서(숫자 클수록 위)
        "layer": 1
    },
    //=======================================
    //
    //   Default StarLibV2 style elements
    //   All of these use default Minecraft textures
    //
    //=======================================
    "close_button_default@image": {
        // 사용할 이미지 경로
        "texture": "textures/ui/close_button_default_light"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "close_button_hover@image": {
        // 사용할 이미지 경로
        "texture": "textures/ui/close_button_hover_light"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "black_alpha@image": {
        // 사용할 이미지 경로
        "texture": "textures/ui/Black",
        // ???
        "alpha": 0.6
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "black@image": {
        // 사용할 이미지 경로
        "texture": "textures/ui/Black"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "fade@image": {
        // 사용할 이미지 경로
        "texture": "textures/ui/Black"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "white_frame@image": {
        // 사용할 이미지 경로
        "texture": "textures/ui/focus_border_white"
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "hightlight@image": {
        // 사용할 이미지 경로
        "texture": "textures/ui/control_white",
        // ???
        "alpha": 0.2
    },
    //=======================================
    //
    //   Debug messages
    //
    //=======================================
    "dme_01@label": {
        // 보여줄 글자
        "text": "§cButton factory item not defined."
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "dme_02@label": {
        // 보여줄 글자
        "text": "§cDynamic item root control not defined."
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "dme_03@label": {
        // 보여줄 글자
        "text": "§cDynamic item entry element not defined."
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "dme_04@label": {
        // 보여줄 글자
        "text": "§cCommon button factory item not defined."
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "dme_05@label": {
        // 보여줄 글자
        "text": "§cCommon button grid item not defined."
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "dme_06@label": {
        // 보여줄 글자
        "text": "§cThird sizer output not defined."
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "dme_07@label": {
        // 보여줄 글자
        "text": "§cHalf sizer output not defined."
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "dme_08@label": {
        // 보여줄 글자
        "text": "§cCustom sizer output not defined."
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "dme_09@label": {
        // 보여줄 글자
        "text": "§cVertical stack item main control not defined."
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "dme_10@label": {
        // 보여줄 글자
        "text": "§cBordered button default element annotation not defined."
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "dme_11@label": {
        // 보여줄 글자
        "text": "§cGrid item root control not defined."
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "dme_12@label": {
        // 보여줄 글자
        "text": "§cUncollizeble content control not defined."
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "dme_13@label": {
        // 보여줄 글자
        "text": "§cVertical processing output not defined.",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%"
        ]
    },
    // 다른 템플릿을 가져와서 확장(상속)
    "dme_14@label": {
        // 보여줄 글자
        "text": "§cScrolling content not defined."
    }
}

통합 UI 모음 5 개

기본

_global_variables.json 통합 UI 모음 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: _global_variables.json
// 분류: 통합 UI 모음 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 기존 알림 시스템 설정
  "$notification_flag_0e34fd": "§N§O§T§I§F§I§C§A§T§I§O§N",

  // exp_toast 관련 설정
  "$chat_item_lifetime": 3.0,

  // Chest-UI 설정
  "$show_inventory": false, // 인벤토리 표시 여부. 저사양 기기에서는 false 권장
  // 오버라이드 가능한 변수
  "$border_and_background_texture": "textures/ui/dialog_background_opaque", // 배경 및 테두리 텍스처
  /*
		*사용할 레이아웃만 활성화하고 나머지는 비활성화하여 렉 감소*
	*/
  // 오버라이드 가능한 변수
  "$disable_furnace_ui": false,
  // 오버라이드 가능한 변수
  "$disable_1_slots_layout": true,
  // 오버라이드 가능한 변수
  "$disable_5_slots_layout": true,
  // 오버라이드 가능한 변수
  "$disable_9_slots_layout": false, // 9칸 레이아웃 활성화 (메뉴용)
  // 오버라이드 가능한 변수
  "$disable_18_slots_layout": true,
  // 오버라이드 가능한 변수
  "$disable_27_slots_layout": false, // 27칸 레이아웃 활성화 (카테고리 메뉴용)
  // 오버라이드 가능한 변수
  "$disable_36_slots_layout": true,
  // 오버라이드 가능한 변수
  "$disable_45_slots_layout": true,
  // 오버라이드 가능한 변수
  "$disable_54_slots_layout": false // 54칸 레이아웃 활성화 (상점 아이템 표시용)
}

_ui_defs.json 통합 UI 모음 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: _ui_defs.json
// 분류: 통합 UI 모음 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // ???/?? ??
  "ui_defs": [
    "ui/_global_variables.json",
    "ui/hud_screen.json",
    "ui/chat_screen.json",
    "ui/components/exp_toast.json",
    "ui/server_form.json"
  ]
}

chat_screen.json 통합 UI 모음 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: chat_screen.json
// 분류: 통합 UI 모음 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "chat",
  // ???/?? ??
  "messages_text/text": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#text - '<' - '>')",
        // 결과가 들어갈 속성
        "target_property_name": "#output"
      },
      {
        // 계산/조건 결과를 연결
        "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('§␛' + #text + '§r') - ('§␛' + $notification_flag_0e34fd) = ('§␛' + #text + '§r')) and ((#output - '\ue1fd' - '\ue1fe' - '\ue1ff') = #output)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
    ]
  }
}

hud_screen.json 통합 UI 모음 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: hud_screen.json
// 분류: 통합 UI 모음 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // 이 파일의 이름표(다른 파일에서 @로 참조)
    "namespace": "hud",
    // ???/?? ??
    "hud_screen": {
        // ?? ??
        "render_only_when_topmost": false,
        // 오버라이드 가능한 변수
        "$additional_screen_content": "hud.notification_factory",
        // 오버라이드 가능한 변수
        "$use_loading_bars": false,
        // 오버라이드 가능한 변수
        "$screen_animations": [],
        // 오버라이드 가능한 변수
        "$background_animations": []
    },
    // ???/?? ??
    "boss_health_panel_score": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            182,
            20
        ],
        // 기준점(어디에서 시작할지)
        "anchor_from": "top_middle",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "top_middle",
        // 오버라이드 가능한 변수
        "$progress_bar_collection": "scoreboard_scores",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "padding": {
                    // 패널: 다른 부품을 담는 바닥판
                    "type": "panel",
                    // 가로/세로 크기
                    "size": [
                        0,
                        10
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "progress_bar_for_collections@common.progress_bar": {
                    // 기준점에서 이동하는 거리
                    "offset": [
                        0,
                        10
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "empty_progress_bar@common.empty_progress_bar": {
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": 1
                            }
                        },
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "filled_progress_bar@common.filled_progress_bar": {
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": 2,
                                // ?? ??
                                "clip_pixelperfect": false,
                                // ?? (R,G,B,A)
                                "color": [
                                    1,
                                    0.84,
                                    0
                                ],
                                // 오버라이드 가능한 변수
                                "$bossbar_max_value": 100.0,
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#objective_sidebar_name",
                                        // 게임이 주는 전역 값 연결
                                        "binding_type": "global"
                                    },
                                    {
                                        // 가져올 값 이름
                                        "binding_name": "#player_score_sidebar",
                                        // 목록 데이터를 반복 연결
                                        "binding_type": "collection",
                                        // 목록 이름
                                        "binding_collection_name": "scoreboard_scores"
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(1 - ((#player_score_sidebar * 1) / $bossbar_max_value))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#clip_ratio"
                                    }
                                ]
                            }
                        }
                    ]
                }
            }
        ]
    },
    // ???/?? ??
    "boss_health_panel_player": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            182,
            20
        ],
        // 기준점(어디에서 시작할지)
        "anchor_from": "top_middle",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "top_middle",
        // 오버라이드 가능한 변수
        "$progress_bar_collection": "scoreboard_scores",
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "boss_name@boss_name_panel": {}
            }
        ]
    },
    // ???/?? ??
    "boss_name_panel": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            182,
            14
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "boss_name@hud.boss_name": {}
            }
        ]
    },
    // ???/?? ??
    "boss_name": {
        // 글자 표시
        "type": "label",
        // ?? (R,G,B,A)
        "color": [
            1.0,
            1.0,
            1.0
        ],
        // 보여줄 글자
        "text": "#player_name_sidebar",
        // 겹치는 순서(숫자 클수록 위)
        "layer": 1,
        // 가로/세로 크기
        "size": [
            "default",
            10
        ],
        // ??
        "font_type": "smooth",
        // ?? ?? ??
        "font_scale_factor": 1,
        // ?? ??
        "shadow": true,
        // ?? ??
        "text_alignment": "center",
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#player_name_sidebar",
                // 목록 데이터를 반복 연결
                "binding_type": "collection",
                // 목록 이름
                "binding_collection_name": "scoreboard_players"
            }
        ]
    },
    // ???/?? ??
    "root_panel/sidebar": {
        // 완전히 제거(공간도 없음)
        "ignored": true
    },
    // ???/?? ??
    "root_panel/boss_health_panel/boss_hud_panel": {
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "boss_health_grid_name@hud.boss_health_grid_scoreboard_name": {
                    // 기준점에서 이동하는 거리
                    "offset": [
                        0,
                        2
                    ]
                }
            },
            {
                // 다른 템플릿을 가져와서 확장(상속)
                "boss_health_grid_score@hud.boss_health_grid_scoreboard_score": {
                    // 기준점에서 이동하는 거리
                    "offset": [
                        0,
                        2
                    ]
                }
            }
        ],
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#scoreboard_sidebar_visible",
                // 게임이 주는 전역 값 연결
                "binding_type": "global",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#visible"
            }
        ]
    },
    // ???/?? ??
    "boss_health_grid_scoreboard_score": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "top_middle",
        // 기준점(어디에서 시작할지)
        "anchor_from": "top_middle",
        // 가로/세로 크기
        "size": [
            182,
            "30%"
        ],
        // 목록 이름
        "collection_name": "scoreboard_scores",
        // 목록 아이템을 자동으로 생성
        "factory": {
            // ?? ??
            "name": "player_score_factory",
            // ??? ???
            "control_name": "hud.boss_health_panel_score"
        },
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#scoreboard_sidebar_size",
                // 게임이 주는 전역 값 연결
                "binding_type": "global",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#collection_length"
            }
        ]
    },
    // ???/?? ??
    "boss_health_grid_scoreboard_name": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "top_middle",
        // 기준점(어디에서 시작할지)
        "anchor_from": "top_middle",
        // 가로/세로 크기
        "size": [
            182,
            "30%"
        ],
        // 목록 이름
        "collection_name": "scoreboard_players",
        // 목록 아이템을 자동으로 생성
        "factory": {
            // ?? ??
            "name": "player_score_factory",
            // ??? ???
            "control_name": "hud.boss_health_panel_player"
        },
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#scoreboard_sidebar_size",
                // 게임이 주는 전역 값 연결
                "binding_type": "global",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#collection_length"
            }
        ]
    },
    // ???/?? ??
    "hud_title_text": {
        // 기준점(어디에서 시작할지)
        "anchor_from": "right_middle",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "right_middle",
        // 기준점에서 이동하는 거리
        "offset": [
            -2,
            0
        ],
        // ???
        "alpha": 1,
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#hud_title_text_string",
                // 가져온 값을 다른 속성으로 연결
                "binding_name_override": "#text",
                // 게임이 주는 전역 값 연결
                "binding_type": "global"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(not (#text = ' '))",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ]
    },
    // ???/?? ??
    "hud_title_text/title_frame/title_background": {
        // 가로/세로 크기
        "size": [
            "100%sm + 3px",
            "100%sm + 6px"
        ],
        // 기준점(어디에서 시작할지)
        "anchor_from": "top_right",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "top_right",
        // ???
        "alpha": 0.6
    },
    // ???/?? ??
    "hud_title_text/title_frame/title": {
        // 기준점(어디에서 시작할지)
        "anchor_from": "top_right",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "top_right",
        // ?? ??
        "text_alignment": "left_middle",
        // ?? (R,G,B,A)
        "color": "$tool_tip_text",
        // ?? ?? ?
        "font_size": "normal",
        // ??/?? ?
        "line_padding": -1
    },
    // ???/?? ??
    "score_grid": {
        // 격자 컨테이너: 칸칸이 배치
        "type": "grid",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%"
        ],
        // 그리드 칸 수
        "grid_dimensions": [
            1,
            1
        ],
        // ??? ?? ?
        "grid_item_template": "hud.score_grid_item",
        // 목록 이름
        "collection_name": "players_collection"
    },
    // ???/?? ??
    "score_grid_item": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            "100%",
            "100%"
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "gamertag_control": {
                    // 데이터 목록을 반복 배치
                    "type": "collection_panel",
                    // 가로/세로 크기
                    "size": [
                        "100%cm",
                        "100%cm"
                    ],
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "top_right",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "top_right",
                    // 기준점에서 이동하는 거리
                    "offset": [
                        -4,
                        4
                    ],
                    // 목록 이름
                    "collection_name": "scoreboard_scored_list_collection",
                    // 목록 아이템을 자동으로 생성
                    "factory": {
                        // ?? ??
                        "name": "scored_list_factory",
                        // ??? ???
                        "control_name": "hud.score_bg"
                    },
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 가져올 값 이름
                            "binding_name": "#scored_list_size",
                            // 가져온 값을 다른 속성으로 연결
                            "binding_name_override": "#collection_length"
                        },
                        {
                            // 가져올 값 이름
                            "binding_name": "#gamertag",
                            // 목록 데이터를 반복 연결
                            "binding_type": "collection",
                            // 목록 이름
                            "binding_collection_name": "players_collection"
                        }
                    ]
                }
            }
        ]
    },
    // ???/?? ??
    "score_bg": {
        // 이미지 표시
        "type": "image",
        // 사용할 이미지 경로
        "texture": "textures/ui/hud_tip_text_background",
        // 가로/세로 크기
        "size": [
            "100%c + 8px",
            "100%c + 4px"
        ],
        // ???
        "alpha": 0.6,
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            {
                // 가져올 값 이름
                "binding_name": "#player_name",
                // 목록 데이터를 반복 연결
                "binding_type": "collection",
                // 목록 이름
                "binding_collection_name": "scoreboard_scored_list_collection"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // ?? ??
                "source_control_name": "gamertag_control",
                // 계산식/참조 값
                "source_property_name": "#gamertag",
                // 결과가 들어갈 속성
                "target_property_name": "#playername"
            },
            {
                // 계산/조건 결과를 연결
                "binding_type": "view",
                // 계산식/참조 값
                "source_property_name": "(#playername = #player_name)",
                // 결과가 들어갈 속성
                "target_property_name": "#visible"
            }
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "score_label": {
                    // 글자 표시
                    "type": "label",
                    // 보여줄 글자
                    "text": "#text",
                    // ?? ??
                    "shadow": true,
                    // 겹치는 순서(숫자 클수록 위)
                    "layer": 1,
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // ?? ???
                            "binding_condition": "visible",
                            // 가져올 값 이름
                            "binding_name": "#player_score",
                            // 목록 데이터를 반복 연결
                            "binding_type": "collection",
                            // 목록 이름
                            "binding_collection_name": "scoreboard_scored_list_collection"
                        },
                        {
                            // ?? ???
                            "binding_condition": "visible",
                            // 가져올 값 이름
                            "binding_name": "#player_list_title"
                        },
                        {
                            // ?? ???
                            "binding_condition": "visible",
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(#player_list_title + #player_score)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#text"
                        }
                    ]
                }
            }
        ]
    },
    // ???/?? ??
    "notification_factory": {
        // 줄맞춤 컨테이너: 가로/세로로 자동 배치
        "type": "stack_panel",
        // 가로/세로 크기
        "size": [
            0,
            "100%c"
        ],
        // 겹치는 순서(숫자 클수록 위)
        "layer": 20,
        // 기준점(어디에서 시작할지)
        "anchor_from": "top_right",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "top_right",
        // 목록 아이템을 자동으로 생성
        "factory": {
            // ?? ??
            "name": "chat_item_factory",
            // 팩토리 템플릿 매핑
            "control_ids": {
                // ?? ??
                "chat_item": "@hud.notification"
            }
        }
    },
    // ???/?? ??
    "noti_1": {
        // 크기 변화
        "anim_type": "size",
        // 걸리는 시간(초)
        "duration": "$in_time",
        // 움직임 곡선
        "easing": "out_sine",
        // 시작 값
        "from": [
            "100%c",
            "100%c"
        ],
        // 끝 값
        "to": [
            0,
            "100%c"
        ],
        // 다음 애니메이션으로 연결
        "next": "@hud.noti_2"
    },
    // ???/?? ??
    "noti_2": {
        // 잠시 대기
        "anim_type": "wait",
        // 걸리는 시간(초)
        "duration": "$stay_time",
        // 다음 애니메이션으로 연결
        "next": "@hud.noti_3"
    },
    // ???/?? ??
    "noti_3": {
        // 크기 변화
        "anim_type": "size",
        // 걸리는 시간(초)
        "duration": "$out_time",
        // 움직임 곡선
        "easing": "in_sine",
        // 시작 값
        "from": [
            0,
            "100%c"
        ],
        // 끝 값
        "to": [
            "100%c",
            "100%c"
        ],
        // 다음 애니메이션으로 연결
        "next": "@hud.noti_4"
    },
    // ???/?? ??
    "noti_4": {
        // 투명도 변화
        "anim_type": "alpha",
        // 걸리는 시간(초)
        "duration": 0,
        // 시작 값
        "from": 1,
        // 끝 값
        "to": 0,
        // 다음 애니메이션으로 연결
        "next": "@hud.noti_5"
    },
    // ???/?? ??
    "noti_5": {
        // 크기 변화
        "anim_type": "size",
        // 걸리는 시간(초)
        "duration": 1,
        // 움직임 곡선
        "easing": "out_expo",
        // 시작 값
        "from": [
            "100%c",
            "100%c"
        ],
        // 끝 값
        "to": [
            "100%c",
            0
        ],
        // 다음 애니메이션으로 연결
        "next": "@hud.noti_4",
        // ?? ??
        "destroy_at_end": "chat_grid_item"
    },
    // ???/?? ??
    "immediate_destroy_anim": {
        // 잠시 대기
        "anim_type": "wait",
        // 걸리는 시간(초)
        "duration": 0,
        // ?? ??
        "destroy_at_end": "chat_grid_item"
    },
    // ???/?? ??
    "notification": {
        // 오버라이드 가능한 변수
        "$in_time": 1,
        // 오버라이드 가능한 변수
        "$stay_time": 5,
        // 오버라이드 가능한 변수
        "$out_time": 1,
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // ??? ?? ?
        "propagate_alpha": true,
        // 애니메이션 목록
        "anims": [
            "@hud.noti_1"
        ],
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "notification_background": {
                    // 이미지 표시
                    "type": "image",
                    // 기준점(어디에서 시작할지)
                    "anchor_from": "top_right",
                    // 붙일 위치(어디에 놓을지)
                    "anchor_to": "top_right",
                    // 가로/세로 크기
                    "size": [
                        "100%c + 18px",
                        "100%cm + 12px"
                    ],
                    // ???/?? ??
                    "min_size": [
                        "100%c + 18px",
                        34
                    ],
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // ???/?? ??
                            "notification_text_panel": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [
                                    "100%cm",
                                    "100%c"
                                ],
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": 1,
                                // 기준점(어디에서 시작할지)
                                "anchor_from": "right_middle",
                                // 붙일 위치(어디에 놓을지)
                                "anchor_to": "right_middle",
                                // 기준점에서 이동하는 거리
                                "offset": [
                                    -9,
                                    1
                                ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // ?? ??
                                        "source_control_name": "notification_background",
                                        // 계산식/참조 값
                                        "source_property_name": "#notification_title",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#nested_title",
                                        // ?? ??
                                        "resolve_sibling_scope": true
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // ?? ??
                                        "source_control_name": "notification_background",
                                        // 계산식/참조 값
                                        "source_property_name": "#notification_message",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#nested_message",
                                        // ?? ??
                                        "resolve_sibling_scope": true
                                    }
                                ],
                                // 이 안에 들어가는 부품 목록
                                "controls": [
                                    {
                                        // ???/?? ??
                                        "notification_title": {
                                            // 글자 표시
                                            "type": "label",
                                            // ??/?? ?
                                            "line_padding": -2,
                                            // ??
                                            "font_type": "default",
                                            // ?? ?? ??
                                            "font_scale_factor": 1.2,
                                            // 보여줄 글자
                                            "text": "#title",
                                            // 기준점(어디에서 시작할지)
                                            "anchor_from": "top_left",
                                            // 붙일 위치(어디에 놓을지)
                                            "anchor_to": "top_left",
                                            // 기준점에서 이동하는 거리
                                            "offset": [
                                                0,
                                                -2
                                            ],
                                            // ???/?? ??
                                            "max_size": [
                                                200,
                                                "default"
                                            ],
                                            // 게임 값과 연결하는 규칙 목록
                                            "bindings": [
                                                {
                                                    // 계산/조건 결과를 연결
                                                    "binding_type": "view",
                                                    // ?? ??
                                                    "source_control_name": "notification_text_panel",
                                                    // 계산식/참조 값
                                                    "source_property_name": "#nested_title",
                                                    // 결과가 들어갈 속성
                                                    "target_property_name": "#title",
                                                    // ?? ??
                                                    "resolve_sibling_scope": true
                                                },
                                                {
                                                    // 계산/조건 결과를 연결
                                                    "binding_type": "view",
                                                    // 계산식/참조 값
                                                    "source_property_name": "(not (#title = '§r§r'))",
                                                    // 결과가 들어갈 속성
                                                    "target_property_name": "#visible"
                                                }
                                            ]
                                        }
                                    },
                                    {
                                        // ???/?? ??
                                        "notification_message": {
                                            // 글자 표시
                                            "type": "label",
                                            // ??/?? ?
                                            "line_padding": 1,
                                            // ??
                                            "font_type": "default",
                                            // 보여줄 글자
                                            "text": "#message",
                                            // 기준점(어디에서 시작할지)
                                            "anchor_from": "bottom_left",
                                            // 붙일 위치(어디에 놓을지)
                                            "anchor_to": "bottom_left",
                                            // ???/?? ??
                                            "max_size": [
                                                200,
                                                "default"
                                            ],
                                            // 게임 값과 연결하는 규칙 목록
                                            "bindings": [
                                                {
                                                    // 계산/조건 결과를 연결
                                                    "binding_type": "view",
                                                    // ?? ??
                                                    "source_control_name": "notification_text_panel",
                                                    // 계산식/참조 값
                                                    "source_property_name": "#nested_message",
                                                    // 결과가 들어갈 속성
                                                    "target_property_name": "#message",
                                                    // ?? ??
                                                    "resolve_sibling_scope": true
                                                },
                                                {
                                                    // 계산/조건 결과를 연결
                                                    "binding_type": "view",
                                                    // 계산식/참조 값
                                                    "source_property_name": "(not (#message = '§r§r'))",
                                                    // 결과가 들어갈 속성
                                                    "target_property_name": "#visible"
                                                }
                                            ]
                                        }
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "notification_icon_texture": {
                                // 이미지 표시
                                "type": "image",
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": 1,
                                // 가로/세로 크기
                                "size": [
                                    16,
                                    16
                                ],
                                // 기준점(어디에서 시작할지)
                                "anchor_from": "top_left",
                                // 붙일 위치(어디에 놓을지)
                                "anchor_to": "top_left",
                                // 기준점에서 이동하는 거리
                                "offset": [
                                    9,
                                    9
                                ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // ?? ??
                                        "source_control_name": "notification_background",
                                        // 계산식/참조 값
                                        "source_property_name": "#notification_icon_texture",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#texture",
                                        // ?? ??
                                        "resolve_sibling_scope": true
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#texture = '') and (#texture - 'aux:' = #texture))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible"
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "notification_item_renderer": {
                                // 특수 렌더러(그라디언트/플레이어 등)
                                "type": "custom",
                                // 커스텀 렌더러 종류
                                "renderer": "inventory_item_renderer",
                                // 겹치는 순서(숫자 클수록 위)
                                "layer": 1,
                                // 가로/세로 크기
                                "size": [
                                    16,
                                    16
                                ],
                                // 기준점(어디에서 시작할지)
                                "anchor_from": "top_left",
                                // 붙일 위치(어디에 놓을지)
                                "anchor_to": "top_left",
                                // 기준점에서 이동하는 거리
                                "offset": [
                                    9,
                                    9
                                ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // ?? ??
                                        "source_control_name": "notification_background",
                                        // 계산식/참조 값
                                        "source_property_name": "((#notification_icon_texture - 'aux:') * 1)",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#item_id_aux",
                                        // ?? ??
                                        "resolve_sibling_scope": true
                                    },
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // ?? ??
                                        "source_control_name": "notification_background",
                                        // 계산식/참조 값
                                        "source_property_name": "(not (#notification_icon_texture - 'aux:' = #notification_icon_texture))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible",
                                        // ?? ??
                                        "resolve_sibling_scope": true
                                    }
                                ]
                            }
                        },
                        {
                            // ???/?? ??
                            "notification_icon_padding": {
                                // 패널: 다른 부품을 담는 바닥판
                                "type": "panel",
                                // 가로/세로 크기
                                "size": [
                                    6,
                                    0
                                ],
                                // 게임 값과 연결하는 규칙 목록
                                "bindings": [
                                    {
                                        // 계산/조건 결과를 연결
                                        "binding_type": "view",
                                        // ?? ??
                                        "source_control_name": "notification_background",
                                        // 계산식/참조 값
                                        "source_property_name": "(not ((#notification_title + #notification_message = '§r§r§r§r') or (#notification_icon_texture = '')))",
                                        // 결과가 들어갈 속성
                                        "target_property_name": "#visible",
                                        // ?? ??
                                        "resolve_sibling_scope": true
                                    }
                                ]
                            }
                        }
                    ],
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(not (('§␛' + #text + '§r') - ('§␛' + $notification_flag_0e34fd) = ('§␛' + #text + '§r')))",
                            // 결과가 들어갈 속성
                            "target_property_name": "#visible"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "('\b' + #text - $notification_flag_0e34fd)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#data"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "('§r' + '%.101s' * #data - '\b' - '\t' + '§r')",
                            // 결과가 들어갈 속성
                            "target_property_name": "#notification_title"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "(('§r' + '%.301s' * #data - '%.101s' * #data) - '\b' - '\t' + '§r')",
                            // 결과가 들어갈 속성
                            "target_property_name": "#notification_message"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "('%.401s' * #data - '%.301s' * #data - '\t')",
                            // 결과가 들어갈 속성
                            "target_property_name": "#notification_icon_texture"
                        },
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // 계산식/참조 값
                            "source_property_name": "('%.501s' * #data - '%.401s' * #data - '\t')",
                            // 결과가 들어갈 속성
                            "target_property_name": "#texture"
                        }
                    ]
                }
            },
            {
                // ???/?? ??
                "immediate_destroy": {
                    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                    "type": "stack_panel",
                    // 가로/세로 크기
                    "size": [
                        0,
                        0
                    ],
                    // 목록 아이템을 자동으로 생성
                    "factory": {
                        // ?? ??
                        "name": "immediate_destroy_factory",
                        // ??? ???
                        "control_name": "@hud.immediate_destroy_control"
                    },
                    // 게임 값과 연결하는 규칙 목록
                    "bindings": [
                        {
                            // 계산/조건 결과를 연결
                            "binding_type": "view",
                            // ?? ??
                            "source_control_name": "notification_background",
                            // 계산식/참조 값
                            "source_property_name": "((not #visible) * 1)",
                            // 결과가 들어갈 속성
                            "target_property_name": "#collection_length",
                            // ?? ??
                            "resolve_sibling_scope": true
                        }
                    ]
                }
            }
        ]
    },
    // ???/?? ??
    "immediate_destroy_control": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [
            0,
            0
        ],
        // 애니메이션 목록
        "anims": [
            "@hud.immediate_destroy_anim"
        ]
    },
    // ???/?? ??
    "koala_title_data_control": {
        // 오버라이드 가능한 변수
        "$update_string": "Hp:",
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [ 0, 0 ],
        // 게임 값과 연결하는 규칙 목록
        "bindings": [
            { "binding_name": "#hud_title_text_string" },
            { "binding_name": "#hud_title_text_string",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#preserved_text",
              // ?? ???
              "binding_condition": "visibility_changed"
            },
            { "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not (#hud_title_text_string = #preserved_text) and not ((#hud_title_text_string - $update_string) = #hud_title_text_string))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
        ]
    },
// ???/?? ??
"chat_grid_item/chat_background": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
        { "binding_type": "collection",
          // 가져올 값 이름
          "binding_name": "#chat_text",
          // 가져온 값을 다른 속성으로 연결
          "binding_name_override": "#text",
          // 목록 이름
          "binding_collection_name": "chat_text_grid"
        },
        { "binding_type": "view",
          // 계산식/참조 값
          "source_property_name": "(#text - '<' - '>')",
          // 결과가 들어갈 속성
          "target_property_name": "#output"
        },
        { "binding_type": "view",
          // 계산식/참조 값
          "source_property_name": "((#output - '\ue1fd' - '\ue1fe' - '\ue1ff' - $notification_flag_0e34fd) = #output)",
          // 결과가 들어갈 속성
          "target_property_name": "#visible"
        }
    ]
    },
    // ???/?? ??
    "item_text_element": {
        // 패널: 다른 부품을 담는 바닥판
        "type": "panel",
        // 가로/세로 크기
        "size": [ "100%c", "100%c" ],
        // 기준점(어디에서 시작할지)
        "anchor_from": "bottom_middle",
        // 붙일 위치(어디에 놓을지)
        "anchor_to": "bottom_middle",
        // 겹치는 순서(숫자 클수록 위)
        "layer": 999,
        // 이 안에 들어가는 부품 목록
        "controls": [
            {
                // ???/?? ??
                "item_text_aligner": {
                    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
                    "type": "stack_panel",
                    // 가로/세로 크기
                    "size": [ "100%c", "100%c" ],
                    // 쌓는 방향(가로/세로)
                    "orientation": "vertical",
                    // 기준점에서 이동하는 거리
                    "offset": [ 0, -42 ],
                    // ?? ??
                    "use_child_anchors": true,
                    // 이 안에 들어가는 부품 목록
                    "controls": [
                        {
                            // 다른 템플릿을 가져와서 확장(상속)
                            "exp_toast@exp_toast.root_panel": {}
                        }
                    ]
                }
            }
        ]
    },
    // ???/?? ??
    "exp_progress_bar_and_hotbar": {
        // ?? ?? ??
        "modifications": [
            {
                // ?? ?? ??
                "array_name": "controls",
                // ?? ??
                "operation": "remove",
                // ??? ???
                "control_name": "item_text_factory"
            },
            {
                // ?? ?? ??
                "array_name": "controls",
                // ?? ??
                "operation": "insert_front",
                // ??? ?
                "value": [
                    {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "item_text_element@hud.item_text_element": {}
                    }
                ]
            }
        ]
    },
    // ???/?? ??
    "exp_progress_bar_and_hotbar_pocket": {
        // ?? ?? ??
        "modifications": [
            {
                // ?? ?? ??
                "array_name": "controls",
                // ?? ??
                "operation": "remove",
                // ??? ???
                "control_name": "item_text"
            },
            {
                // ?? ?? ??
                "array_name": "controls",
                // ?? ??
                "operation": "insert_front",
                // ??? ?
                "value": [
                    {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "item_text_element@hud.item_text_element": {}
                    }
                ]
            }
        ]
    },
    // ???/?? ??
    "root_panel": {
        // ?? ?? ??
        "modifications": [
            {
                // ?? ?? ??
                "array_name": "controls",
                // ?? ??
                "operation": "insert_front",
                // ??? ?
                "value": [
                    {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "koala_title_data_control@hud.koala_title_data_control": {}
                    },
                    {
                        // 다른 템플릿을 가져와서 확장(상속)
                        "score_grid@hud.score_grid": {}
                    }
                ]
            }
        ]
    }
}

components

exp_toast.json 통합 UI 모음 · components

필요한 부분만 참고해서 가져가세요.

// 예제: exp_toast.json
// 분류: 통합 UI 모음 / components
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "exp_toast",
  // ???/?? ??
  "root_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 가로/세로 크기
    "size": [ 300, "100%c" ],
    // ?? ?? ?
    "max_size": [ 300, 50 ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, -53 ],
    // ?? ????
    "clips_children": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "factory_stack": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 가로/세로 크기
          "size": [ 170, "100%c" ],
          // 목록 아이템을 자동으로 생성
          "factory": {
            // ?? ??
            "name": "chat_item_factory",
            // ?? ?? ?
            "max_children_size": 10,
            // 팩토리 템플릿 매핑
            "control_ids": {
              // ?? ??
              "chat_item": "exp_toast@exp_toast.element"
          }}
      }}
  ]},
  // ???/?? ??
  "element": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 겹치는 순서(숫자 클수록 위)
    "layer": -20,
    // 가로/세로 크기
    "size": [ 170, "100%cm" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, -1 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "@exp_toast.subbar": {}}
  ]},
  // ???/?? ??
  "subbar": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 170, 5 ],
    // ??? ?? ?
    "propagate_alpha": true,
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 사용할 이미지 경로
    "texture": "textures/ui/black",
    // ???
    "alpha": 0.7,
    // 애니메이션 목록
    "anims": [
      "@exp_toast.anim_chat_pile_up"
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#chat_text",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "chat_text_grid",
        // ?? ???
        "binding_condition": "once"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#text - '<' - '>')",
        // 결과가 들어갈 속성
        "target_property_name": "#output"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not((#output - '\ue1fd') = #output))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "background": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ 200, "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "center",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "center",
          // 사용할 이미지 경로
          "texture": "textures/ui/white",
          // ?? (R,G,B,A)
          "color": [ 0, 0, 0 ],
          // ???
          "alpha": 0.7,
          // ??? ?? ?
          "propagate_alpha": true,
          // 애니메이션 목록
          "anims": [
            "@exp_toast.anim_chat_bg_wait_bottom"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "gradient_background_left": {
                // 특수 렌더러(그라디언트/플레이어 등)
                "type": "custom",
                // 커스텀 렌더러 종류
                "renderer": "gradient_renderer",
                // 가로/세로 크기
                "size": [ 30, "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ -30, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // ?? ??
                "gradient_direction": "horizontal",
                // ?? ?? ?
                "color1": [ 0, 0, 0, 0 ],
                // ?? ?? ?
                "color2": [ 0, 0, 0, 1 ]
            }},
            { "gradient_background_right": {
                // 특수 렌더러(그라디언트/플레이어 등)
                "type": "custom",
                // 커스텀 렌더러 종류
                "renderer": "gradient_renderer",
                // 가로/세로 크기
                "size": [ 30, "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 30, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "right_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "right_middle",
                // ?? ??
                "gradient_direction": "horizontal",
                // ?? ?? ?
                "color1": [ 0, 0, 0, 1 ],
                // ?? ?? ?
                "color2": [ 0, 0, 0, 0 ]
            }}
      ]}},
      { "text_wrapper": {
          // 클릭 가능한 버튼
          "type": "button",
          // 가로/세로 크기
          "size": [ 170, "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 5,
          // 기준점에서 이동하는 거리
          "offset": [ 2, 0 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "text": {
                // 글자 표시
                "type": "label",
                // 보여줄 글자
                "text": "#chat_text",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_left",
                // ?? ??
                "shadow": true,
                // 기준점에서 이동하는 거리
                "offset": [ 0, -1.5 ],
                // ?? ??
                "localize": false,
                // 가로/세로 크기
                "size": [ 200, "default" ],
                // ?? ??
                "enable_profanity_filter": true,
                // ?? ?? ??
                "font_scale_factor": 0.75,
                // 애니메이션 목록
                "anims": [ "@exp_toast.anim_chat_txt_wait" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_name": "#text",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "chat_text_grid"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "('§z' + (#text - (%.3s * #text)))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#chat_text"
                }]
            }}
      ]}}
  ]},
  // ???/?? ??
  "anim_chat_pile_up": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "out_expo",
    // 걸리는 시간(초)
    "duration": 0.5,
    // 시작 값
    "from": [ 200, 0 ],
    // 끝 값
    "to": [ 200, 10 ]
  },
  // ???/?? ??
  "anim_chat_bg_alpha_bottom": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_quart",
    // 걸리는 시간(초)
    "duration": 1,
    // 시작 값
    "from": 0.7,
    // 끝 값
    "to": 0
  },
  // ???/?? ??
  "anim_chat_bg_wait_bottom": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 0.5,
    // 다음 애니메이션으로 연결
    "next": "@exp_toast.anim_chat_bg_alpha_bottom"
  },
  // ???/?? ??
  "anim_chat_txt_alpha": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_quart",
    // 걸리는 시간(초)
    "duration": 0.7,
    // 시작 값
    "from": 1,
    // 끝 값
    "to": 0
  },
  // ???/?? ??
  "anim_chat_txt_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 1,
    // 다음 애니메이션으로 연결
    "next": "@exp_toast.anim_chat_txt_alpha"
  },

  // ???/?? ??
  "progress_bar_anim": {
    // 크기 변화
    "anim_type": "size",
    // 시작 값
    "from": [ "0%", 1 ],
    // 끝 값
    "to": [ "100% - 8px", 1 ],
    // 걸리는 시간(초)
    "duration": "($chat_item_lifetime + 2)"
  },
  // ???/?? ??
  "anim_chat_stack": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "out_expo",
    // 걸리는 시간(초)
    "duration": 0.5,
    // 시작 값
    "from": [ 180, 0 ],
    // 끝 값
    "to": [ 180, "100%c" ]
  },
  // ???/?? ??
  "anim_chat_bg_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_expo",
    // 걸리는 시간(초)
    "duration": 1,
    // 시작 값
    "from": [ "100%", 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // 다음 애니메이션으로 연결
    "next": "@exp_toast.anim_chat_bg_wait_push"
  },
  // ???/?? ??
  "anim_chat_bg_wait_push": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 1,
    // 다음 애니메이션으로 연결
    "next": "@exp_toast.anim_chat_bg_push"
  },
  // ???/?? ??
  "anim_chat_bg_push": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "in_expo",
    // 걸리는 시간(초)
    "duration": 1,
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ "100%", 0 ],
    // ?? ??
    "destroy_at_end": "chat_grid_item"
  },
  // ???/?? ??
  "toast_image_template": {
    // 오버라이드 가능한 변수
    "$arx:chat_image_binding|default": "#text",
    // 이미지 표시
    "type": "image",
    // ??? ?? ?
    "force_texture_reload": true,
    // ??? ?? ?
    "allow_debug_missing_texture": false,
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#chat_text",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "chat_text_grid",
        // ?? ???
        "binding_condition": "once"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$arx:chat_image_binding",
        // 결과가 들어갈 속성
        "target_property_name": "#texture"
  }]},
  // ???/?? ??
  "toast_label_template": {
	  // 오버라이드 가능한 변수
	  "$arx:chat_text_binding|default": "#text",
    // 글자 표시
    "type": "label",
    // ?? ?? ?
    "max_size": [ "100% - 18px", 20 ],
	  // 기준점(어디에서 시작할지)
	  "anchor_from": "left_middle",
	  // 붙일 위치(어디에 놓을지)
	  "anchor_to": "left_middle",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#chat_text",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "chat_text_grid",
        // ?? ???
        "binding_condition": "once"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$arx:chat_text_binding",
        // 결과가 들어갈 속성
        "target_property_name": "#displaytext"
  }]}
}

UI 재료 모음 59 개

기본

_ui_defs.json UI 재료 모음 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: _ui_defs.json
// 분류: UI 재료 모음 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{ "ui_defs": [
  // Server Forms related.
  "ui/.runeui/forms/brewing_table.json",
  "ui/.runeui/forms/smelting.json",
  "ui/.runeui/forms/salvaging.json",
  "ui/.runeui/forms/smithing.json",
  "ui/.runeui/forms/fuel_selection.json",
  "ui/.runeui/forms/prayer_menu.json",
  "ui/.runeui/forms/fletching_table.json",
  "ui/.runeui/forms/repair.json",
  "ui/.runeui/forms/noting.json",
  "ui/.runeui/forms/noting_amount.json",
  "ui/.runeui/forms/unnoting.json",
  "ui/.runeui/forms/runecraft_form.json",

  // Gameplay
  "ui/.runeui/gameplay/skill_interface.json",
  "ui/.runeui/gameplay/exp_toast.json",
  "ui/.runeui/gameplay/notif_toast.json",
  "ui/.runeui/gameplay/chat_filter.json",
  "ui/.runeui/gameplay/warning.json",
  "ui/.runeui/gameplay/gameplay.json",

  // Misc
  "ui/.runeui/misc/preload.json",

  // Commons
  "ui/.runeui/common.json"
]}

chat_screen.json UI 재료 모음 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: chat_screen.json
// 분류: UI 재료 모음 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{ "messages_scrolling_panel": {
    // 가로/세로 크기
    "size": [ "100%-2px", "100%-70px" ],
    // 기준점에서 이동하는 거리
    "offset": [ 2, -47 ]
  },
  // ???/?? ??
  "commands_panel": {
    // 가로/세로 크기
    "size": [ "100%-2px", "100%-70px" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, -47 ]
  },
  // ???/?? ??
  "messages_text": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "normal_label": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_type": "view",
              // ?? ??
              "source_control_name": "rcui-normal_chat",
              // 계산식/참조 값
              "source_property_name": "(not #toggle_state)",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
          }],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "text@runeui-chat_filter.messages_text_core": {
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#text - '<' - '>')",
                    // 결과가 들어갈 속성
                    "target_property_name": "#output"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "('§z' + #text)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#output_display"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "((#output - '\ue1fd' - '\ue1fe' - '\ue1ff') = #output)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }]
            }}
      ]}},
      { "exp_label": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_type": "view",
              // ?? ??
              "source_control_name": "rcui-exp_chat",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
          }],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "text@runeui-chat_filter.messages_text_core": {
                // 오버라이드 가능한 변수
                "$runeui:text_offset": [ 0, 0 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#text - '<' - '>')",
                    // 결과가 들어갈 속성
                    "target_property_name": "#output"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "('§z' + (#text - '\ue1fd'))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#output_display"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not((#output - '\ue1fd') = #output))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }]
            }}
      ]}},
      { "notif_label": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_type": "view",
              // ?? ??
              "source_control_name": "rcui-notif_chat",
              // 계산식/참조 값
              "source_property_name": "#toggle_state",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
          }],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "text@runeui-chat_filter.messages_text_core": {
                // 오버라이드 가능한 변수
                "$runeui:text_offset": [ 0, 0 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "('§z' + #text)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#output"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#search + 1 * (not (('%.'+#search+'s') * #output = #output)) and (('%.'+#search+'s') * #output = ('%.'+#search+'s') * #output - ';')))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#search"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "((('%.'+#search+'s') * #output) - '§z')",
                    // 결과가 들어갈 속성
                    "target_property_name": "#texture_path"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#text - #texture_path - \ue1ff)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#output_display"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not((#output - '\ue1ff') = #output))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }]
            }}
      ]}}
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#chat_visible",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
      }
  ]},
  // ???/?? ??
  "chat_screen_content": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "messages_panel@chat.messages_scrolling_panel": {} },
      { "chat_bottom_panel@chat.chat_bottom_panel": { "layer": 2 } },
      { "chat_bottom_panel_filter@runeui-chat_filter.chat_bottom_panel_filter": { "layer": 2 } },
      { "chat_top_panel@chat.chat_header": { "layer": 2 } },
      { "autocomplete_commands_panel@chat.commands_panel": { "layer": 3 } },
      { "host_main_panel@host_options.host_panel": { "layer": 4 } },
      { "popup_factory@chat_settings.popup_factory": {} }
  ]}
}

hud_screen.json UI 재료 모음 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: hud_screen.json
// 분류: UI 재료 모음 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{

   // ???/?? ??
   "centered_gui_elements_at_bottom_middle": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 가로/세로 크기
    "size": [ 180, 50 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "heart_rend@heart_renderer": {
          // 기준점에서 이동하는 거리
          "offset": [ -1, -40 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "horse_heart_rend_0@horse_heart_renderer": {
          // 기준점에서 이동하는 거리
          "offset": [ 200, -55 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#creative_horse_hearts",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "horse_heart_rend_1@horse_heart_renderer": {
          // 기준점에서 이동하는 거리
          "offset": [ 200, -55 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#survival_horse_hearts",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "armor_rend@armor_renderer": {
          // 기준점에서 이동하는 거리
          "offset": [ -1, -40 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "hunger_rend@hunger_renderer": {
          // 기준점에서 이동하는 거리
          "offset": [ 180, -40 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left"
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "bubbles_rend_0@bubbles_renderer": {
          // 기준점에서 이동하는 거리
          "offset": [ 200, -55 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#is_not_riding_bubbles",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "bubbles_rend_1@bubbles_renderer": {
          // 기준점에서 이동하는 거리
          "offset": [ 200, -55 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 가져올 값 이름
              "binding_name": "#is_riding_bubbles",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
            }
          ]
        }
      },
      { "exp_rend@exp_progress_bar_and_hotbar": {} } // for classic
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {
        // 가져올 값 이름
        "binding_name": "#hud_visible_centered",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible",
        // 게임이 주는 전역 값 연결
        "binding_type": "global"
      }
    ]
  },

  // ???/?? ??
  "chat_grid_item/chat_background": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "collection",
        // 가져올 값 이름
        "binding_name": "#chat_text",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#text",
        // 목록 이름
        "binding_collection_name": "chat_text_grid"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#text - '<' - '>')",
        // 결과가 들어갈 속성
        "target_property_name": "#output"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#output - '\ue1fd' - '\ue1fe' - '\ue1ff') = #output)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
  }]},
  // Aligned Touch Hotbar from Collapse-UI
  "hotbar_panel": {
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "left_pudding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 20, 22 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "#hotbar_elipses_right_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
          }]
      }},
      { "hotbar_elipses_panel_left@hud.hotbar_elipses_panel_left_content": {}},
      { "hotbar_start_cap@hud.hotbar_start_cap": {}},
      { "hotbar_grid@hud.hotbar_grid": {} },
      { "hotbar_end_cap@hud.hotbar_end_cap": {}},
      { "hotbar_elipses_panel_right@hud.hotbar_elipses_panel_right_content": {}},
      { "right_pudding": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 20, 22 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "#hotbar_elipses_left_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible",
              // 게임이 주는 전역 값 연결
              "binding_type": "global"
          }]
      }}
  ]},
  // ???/?? ??
  "hotbar_elipses_panel_left_content": {
    // 오버라이드 가능한 변수
    "$hotbar_elipses_button_size": [ 20, 22 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "button@hud.hotbar_elipses_button": {} }
  ]},
  // ???/?? ??
  "hotbar_elipses_panel_right_content": {
    // 오버라이드 가능한 변수
    "$hotbar_elipses_button_size": [ 20, 22 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "button@hud.hotbar_elipses_button": {} }
  ]},
  // ???/?? ??
  "hotbar_elipses_button": {
    // ?? ??
    "prevent_touch_input": true
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "borderless_button@common.button": {
    // ?? ??
    "prevent_touch_input": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "elipses@elipses_image_rewrite": {}}
  ]},
  // ???/?? ??
  "elipses_image_rewrite": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/elipses",
    // 가로/세로 크기
    "size": [ 16, 16 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 4
  },
  // ???/?? ??
  "full_progress_bar": {
    // 사용할 이미지 경로
    "texture": "textures/ui/experiencebarfullnew"
  },
  // ???/?? ??
  "empty_progress_bar": {
    // 사용할 이미지 경로
    "texture": "textures/ui/experiencebaremptynew"
  },
  // ???/?? ??
  "progress_bar_nub": {
    // 사용할 이미지 경로
    "texture": "textures/ui/experiencenubnew"
  },
  // ???/?? ??
  "chat_label": {
    // 보여줄 글자
    "text": "#chat_text",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "chat_text_grid"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#text)",
        // 결과가 들어갈 속성
        "target_property_name": "#chat_text"
      }
    ]
  },
  // ???/?? ??
  "hud_title_text": {
    // 오버라이드 가능한 변수
    "$update_string": "Hp:",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#hud_title_text_string" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not(#hud_title_text_string - $update_string) = #hud_title_text_string)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
  }]},
  // ???/?? ??
  "item_name_text_root/item_text_aligner/survival_buffer": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },
  // "item_name_text_root/item_text_aligner/item_text_control": {
  //   "anims": [
  //     "@hud.anim_item_name_background_size"
  //   ]
  // },
  "hud_actionbar_text": {
    // 사용할 이미지 경로
    "texture": ""
  },
  // "anim_item_name_background_size": {
  //   "anim_type": "wait",
  //   "duration": "$wait_duration",
  //   "next": "@hud.anim_item_name_background_size_out"
  // },
  // "anim_item_name_background_size_out": {
  //   "anim_type": "size",
  //   "easing": "in_expo",
  //   "duration": 2,
  //   "from": [ "100%cm", "100%cm" ],
  //   "to": [ "0%cm", "0%cm" ],
  //   "destroy_at_end": "$destroy_id"
  // },
  // "anim_item_name_text_alpha_out": {
  //   "anim_type": "alpha",
  //   "easing": "in_expo",
  //   "destroy_at_end": "nolmaoscrewyou",
  //   "duration": 2,
  //   "from": 1.0,
  //   "to": 0
  // },
  "koala_title_data_control": {
    // 오버라이드 가능한 변수
    "$update_string": "Hp:",
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 0, 0 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#hud_title_text_string" },
      { "binding_name": "#hud_title_text_string",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#preserved_text",
        // ?? ???
        "binding_condition": "visibility_changed",
        // ?? ??
        "resolve_ancestor_scope": true
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not (#hud_title_text_string = #preserved_text) and not ((#hud_title_text_string - $update_string) = #hud_title_text_string))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
  }]},
  // ???/?? ??
  "heart_renderer": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },
  // ???/?? ??
  "armor_renderer": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },
  // ???/?? ??
  "hunger_renderer": {
    // 완전히 제거(공간도 없음)
    "ignored": true
  },
  // ???/?? ??
  "exp_progress_bar_and_hotbar_pocket/resizing_xp_bar_with_hotbar/progress_text_label": {
    // 겹치는 순서(숫자 클수록 위)
    "layer": 30,
    // 기준점에서 이동하는 거리
    "offset": [ 0, 7 ]
  },
  // ???/?? ??
  "exp_progress_bar_and_hotbar/resizing_xp_bar_with_hotbar/progress_text_label": {
    // 겹치는 순서(숫자 클수록 위)
    "layer": 30,
    // 기준점에서 이동하는 거리
    "offset": [ 0, 7 ]
  },
  // ???/?? ??
  "exp_progress_bar_and_hotbar": {
    // ?? ?? ??
    "modifications": [
      { "array_name": "controls",
        // ?? ??
        "operation": "remove",
        // ??? ???
        "control_name": "item_text_factory"
      },
      { "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          { "item_text_element@runeui-gameplay.item_text_element": {}}
      ]}
    ]
  },
  // ???/?? ??
  "exp_progress_bar_and_hotbar_pocket": {
    // ?? ?? ??
    "modifications": [
      { "array_name": "controls",
        // ?? ??
        "operation": "remove",
        // ??? ???
        "control_name": "item_text"
      },
      { "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          { "item_text_element@runeui-gameplay.item_text_element": {}}
      ]}
  ]},
  // ???/?? ??
  "root_panel": {
    // ?? ?? ??
    "modifications": [
      { "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          { "koala_title_data_control@hud.koala_title_data_control": {}},
          { "core@runeui-gameplay.core_hud_element": {}},
          { "skill_interface@runeui-skill_interface.root_panel": {}},
          { "notif_toast@runeui-notif_toast.root_panel": {}}
      ]}
]}}

progress_screen.json UI 재료 모음 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: progress_screen.json
// 분류: UI 재료 모음 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{ "world_loading_progress_screen": {
    // 오버라이드 가능한 변수
    "$screen_bg_content": "runeui-preload.root_panel"
}}

server_form.json UI 재료 모음 · 기본

필요한 부분만 참고해서 가져가세요.

// 예제: server_form.json
// 분류: UI 재료 모음 / 기본
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{ "namespace": "server_form",
  // 다른 템플릿을 가져와서 확장(상속)
  "third_party_server_screen@common.base_screen": {
    // 오버라이드 가능한 변수
    "$pos_to": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$pos_from": [ 0, 25 ],
    // 오버라이드 가능한 변수
    "$screen_animations": [
      "@common.screen_exit_animation_push_fade",
      "@common.screen_exit_animation_pop_fade",
      "@common.screen_entrance_animation_push_fade",
      "@common.screen_entrance_animation_pop_fade",
      "@runeui-common.screen_entrance_anim_push",
      "@runeui-common.screen_entrance_anim_pop",
      "@runeui-common.screen_outro_anim_push",
      "@runeui-common.screen_outro_anim_pop"
  ]},
  // ???/?? ??
  "long_form": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // ?? ?? ??
    "modifications": [
      { "array_name": "bindings",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          { "binding_name": "#title_text" },
          { "binding_type": "view",
            // 계산식/참조 값
            "source_property_name": "((#title_text - 'herblore.potionSelection.title' - 'prayer.title' - 'herblore.decant.title' - 'smelting.title' - 'salvage.title' - 'fuel.title' - 'smith.title' - 'repair.title' - 'noting_table.note.title' - 'noting_table.unnote.title' - 'PLACEHOLDER') = #title_text)",
            // 결과가 들어갈 속성
            "target_property_name": "#visible"
          }]
      }]
  },
  // ???/?? ??
  "custom_form": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // ?? ?? ??
    "modifications": [
      { "array_name": "bindings",
        // ?? ??
        "operation": "insert_back",
        // ??? ?
        "value": [
          { "binding_name": "#title_text" },
          { "binding_type": "view",
            // 계산식/참조 값
            "source_property_name": "((#title_text - 'herblore.potionSelection.title' - 'herblore.decant.title' - 'repair_amount.title' - 'smelting.title' - 'smith.title' - 'noting_table.amount_selection') = #title_text)",
            // 결과가 들어갈 속성
            "target_property_name": "#visible"
          }]
      }]
  },
  // ???/?? ??
  "main_screen_content": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // ?? ?? ??
    "modifications": [
      { "array_name": "controls",
        // ?? ??
        "operation": "insert_front",
        // ??? ?
        "value": [
          { "server_form_factory": {
              // 리스트를 자동으로 생성하는 공장
              "type": "factory",
              // 팩토리 템플릿 매핑
              "control_ids": {
                // ?? ??
                "long_form": "@runeui-form.long_form",
                // ?? ??
                "custom_form": "@runeui-form.custom_form"
          }}}
      ]}
  ]},
  // ???/?? ??
  "dynamic_button": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": ["100%", 32],
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 이 안에 들어가는 부품 목록
    "controls":[
      {
        // ???/?? ??
        "panel_name": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [34, "100%c"],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 계산/조건 결과를 연결
              "binding_type": "view",
              // ?? ??
              "source_control_name": "image",
              // ?? ??
              "resolve_sibling_scope": true,
              // 계산식/참조 값
              "source_property_name": "(not (#texture = ''))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
            }
          ],

          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // ???/?? ??
              "image": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 2,
                // 가로/세로 크기
                "size": [32, 32],
                // 기준점에서 이동하는 거리
                "offset": [0, 0],
                // 게임 값과 연결하는 규칙 목록
                "bindings":[
                  {
                    // 가져올 값 이름
                    "binding_name": "#form_button_texture",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                  },
                  {
                    // 가져올 값 이름
                    "binding_name": "#form_button_texture_file_system",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture_file_system",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                  },
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not ((#texture = '') or (#texture = 'loading')))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "progress@progress.progress_loading_bars": {
                // 가로/세로 크기
                "size": [30, 4],
                // 기준점에서 이동하는 거리
                "offset": [-2, 16],
                // 게임 값과 연결하는 규칙 목록
                "bindings":[
                  {
                    // 계산/조건 결과를 연결
                    "binding_type": "view",
                    // ?? ??
                    "source_control_name": "image",
                    // ?? ??
                    "resolve_sibling_scope": true,
                    // 계산식/참조 값
                    "source_property_name": "(#texture = 'loading')",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                  }
                ]
              }
            }
          ]
        }
      },
      { "button@common_buttons.light_text_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.form_button_click",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 가로/세로 크기
          "size": [ "fill", 32 ],
          // 오버라이드 가능한 변수
          "$button_text": "#form_button_text",
          // 오버라이드 가능한 변수
          "$button_text_binding_type": "collection",
          // 오버라이드 가능한 변수
          "$button_text_grid_collection_name": "form_buttons",
          // 오버라이드 가능한 변수
          "$button_text_max_size": [ "100%", 20 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            {
              // 목록 인덱스/현재 항목 정보 제공
              "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            }
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "default@$button_state_panel": {
                // 오버라이드 가능한 변수
                "$new_ui_button_texture": "$default_button_texture",
                // 오버라이드 가능한 변수
                "$text_color": "$default_text_color",
                // 오버라이드 가능한 변수
                "$secondary_text_color": "$light_button_secondary_default_text_color",
                // 오버라이드 가능한 변수
                "$content_alpha": "$default_content_alpha",
                // 오버라이드 가능한 변수
                "$border_color": "$light_border_default_color",
                // 오버라이드 가능한 변수
                "$border_layer": 2,
                // 오버라이드 가능한 변수
                "$default_state": true,
                // 오버라이드 가능한 변수
                "$button_alpha": "$default_button_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "hover@$button_state_panel": {
                // 오버라이드 가능한 변수
                "$new_ui_button_texture": "$hover_button_texture",
                // 오버라이드 가능한 변수
                "$text_color": "$hover_text_color",
                // 오버라이드 가능한 변수
                "$secondary_text_color": "$light_button_secondary_hover_text_color",
                // 오버라이드 가능한 변수
                "$content_alpha": 1,
                // 오버라이드 가능한 변수
                "$border_color": "$light_border_hover_color",
                // 오버라이드 가능한 변수
                "$border_layer": 4,
                // 오버라이드 가능한 변수
                "$hover_state": true,
                // 오버라이드 가능한 변수
                "$button_alpha": "$default_hover_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4,
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "outline": {
                      // 이미지 표시
                      "type": "image",
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 5,
                      // 사용할 이미지 경로
                      "texture": "textures/ui/White"
                  }},
                  { "text_hover": {
                      // 마우스/커서 따라다니는 패널
                      "type": "input_panel",
                      // 가로/세로 크기
                      "size": [	"100%c", "100%c" ],
                      // ?? ??
                      "follows_cursor": true,
                      // ?? ??
                      "always_handle_pointer": true,
                      // ?? ??
                      "always_listen_to_input": true,
                      // ??? ?? ?
                      "allow_clipping": false,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 120,
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        { "label_core": {
                            // 글자 표시
                            "type": "label",
                            // 보여줄 글자
                            "text": "#form_button_text",
                            // ?? ??
                            "shadow": true,
                            // 기준점에서 이동하는 거리
                            "offset": [ "60%", 0 ],
                            // ?? ?? ?
                            "max_size": [ 220, "default" ],
                            // 게임 값과 연결하는 규칙 목록
                            "bindings": [
                              { "binding_name": "#form_button_text",
                                // 목록 데이터를 반복 연결
                                "binding_type": "collection",
                                // 목록 이름
                                "binding_collection_name": "form_buttons"
                            }],
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              { "background": {
                                  // 이미지 표시
                                  "type": "image",
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": -10,
                                  // 가로/세로 크기
                                  "size": [ "100% + 9px", "100% + 6px" ],
                                  // 사용할 이미지 경로
                                  "texture": "textures/ui/general_textbox"
                              }},
                              { "shadow": {
                                  // 이미지 표시
                                  "type": "image",
                                  // 겹치는 순서(숫자 클수록 위)
                                  "layer": -11,
                                  // ???
                                  "alpha": 0.5,
                                  // 가로/세로 크기
                                  "size": [ "100% + 9px", "100% + 6px" ],
                                  // 사용할 이미지 경로
                                  "texture": "textures/ui/hud_tip_text_background",
                                  // 기준점에서 이동하는 거리
                                  "offset": [ 2, 2 ]
                              }}
                        ]}}
                  ]}}
            ]}},
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "pressed@$button_state_panel": {
                // 오버라이드 가능한 변수
                "$new_ui_button_texture": "$pressed_button_texture",
                // 오버라이드 가능한 변수
                "$text_color": "$pressed_text_color",
                // 오버라이드 가능한 변수
                "$secondary_text_color": "$light_button_secondary_pressed_text_color",
                // 오버라이드 가능한 변수
                "$button_offset|default": "$button_pressed_offset",
                // 오버라이드 가능한 변수
                "$content_alpha": "$pressed_alpha",
                // 오버라이드 가능한 변수
                "$border_color": "$light_border_pressed_color",
                // 오버라이드 가능한 변수
                "$border_layer": 5,
                // 오버라이드 가능한 변수
                "$pressed_state": true,
                // 오버라이드 가능한 변수
                "$button_alpha": "$default_pressed_alpha",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 5
              }
            },
            {
              // 다른 템플릿을 가져와서 확장(상속)
              "locked@$button_state_panel": {
                // 오버라이드 가능한 변수
                "$new_ui_button_texture": "$locked_button_texture",
                // 오버라이드 가능한 변수
                "$text_color": "$locked_text_color",
                // 오버라이드 가능한 변수
                "$secondary_text_color": "$light_button_secondary_locked_text_color",
                // 오버라이드 가능한 변수
                "$content_alpha": "$locked_alpha",
                // 오버라이드 가능한 변수
                "$border_color": "$light_border_locked_color",
                // 오버라이드 가능한 변수
                "$button_image": "common_buttons.locked_button_image",
                // 오버라이드 가능한 변수
                "$border_layer": 1,
                // 오버라이드 가능한 변수
                "$locked_state": true,
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1
              }
            }
      ]}}
    ]
  }
}

.runeui

brewing_table.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: brewing_table.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-brewing_table",
  // ???/?? ??
  "element_modal": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$runeui:form_condition": "(not((#title_text - 'herblore.potionSelection.title' - 'herblore.decant.title') = #title_text))",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:form_condition",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "gradient@runeui-common.gradient_background": {}},
      { "modal@runeui-form.main_panel_no_buttons": {
          // 가로/세로 크기
          "size": [ 236, 200 ],
          // 오버라이드 가능한 변수
          "$title_text_color": [ 0.756, 0.466, 0.929 ],
          // 오버라이드 가능한 변수
          "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
          // 오버라이드 가능한 변수
          "$panel_indent_offset": [ 0, 23 ],
          // 오버라이드 가능한 변수
          "$custom_background": "runeui-brewing_table.dialog",
          // 오버라이드 가능한 변수
          "$rc_template": "runeui-brewing_table.scrolling_panel_modal",
          // 오버라이드 가능한 변수
          "$rc_custom_background": "runeui-brewing_table.background",
          // 오버라이드 가능한 변수
          "$rc_custom_background_size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
      }}
  ]},
  // ???/?? ??
  "element": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$runeui:form_condition": "(not((#title_text - 'herblore.potionSelection.title' - 'herblore.decant.title') = #title_text))",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:form_condition",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "gradient@runeui-common.gradient_background": {}},
      { "form@runeui-form.main_panel_no_buttons": {
          // 가로/세로 크기
          "size": [ 236, 200 ],
          // 오버라이드 가능한 변수
          "$title_text_color": [ 0.756, 0.466, 0.929 ],
          // 오버라이드 가능한 변수
          "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
          // 오버라이드 가능한 변수
          "$panel_indent_offset": [ 0, 23 ],
          // 오버라이드 가능한 변수
          "$custom_background": "runeui-brewing_table.dialog",
          // 오버라이드 가능한 변수
          "$rc_template": "runeui-brewing_table.scrolling_panel",
          // 오버라이드 가능한 변수
          "$rc_custom_background": "runeui-brewing_table.background",
          // 오버라이드 가능한 변수
          "$rc_custom_background_size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
      }}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "dialog@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-brewing_table.dialog_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "background@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-brewing_table.background_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // ???/?? ??
  "background_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // ?? ????
    "clips_children": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "background_gradient@runeui-common.gradient_background_black": {}},
      { "panel_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/brewing_table/brewing_background",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이미지 반복 여부
          "tiled": true
      }}
  ]},
  // ???/?? ??
  "dialog_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "toolbar@runeui-form.form_style_toolbar": {
          // 오버라이드 가능한 변수
          "$runeui:custom_toolbar": true,
          // 오버라이드 가능한 변수
          "$runeui:help_button": false,
          // 오버라이드 가능한 변수
          "$runeui:custom_toolbar_content": "runeui-brewing_table.info_extra"
      }},
      { "styler@runeui-form.form_style_main": {}},
      { "divider@runeui-common.title_bar_divider": {}},
      { "decent_button@runeui-brewing_table.decent_button": {}}
  ]},
  // ???/?? ??
  "info_extra": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "help_brewing@runeui-common.off_dialog": {
          // 오버라이드 가능한 변수
          "$rc_hover_word": "runeui.help.brewingtable",
          // 오버라이드 가능한 변수
          "$rc_offdialog_offset": [ -19, 3 ],
          // 오버라이드 가능한 변수
          "$rc_offdialog_content": "runeui-common.help_button",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "#title_text" },
            { "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not((#title_text - 'herblore.potionSelection.title') = #title_text))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
          }]
      }},
      { "help_decanting@runeui-common.off_dialog": {
          // 오버라이드 가능한 변수
          "$rc_hover_word": "runeui.help.decantingtable",
          // 오버라이드 가능한 변수
          "$rc_offdialog_offset": [ -19, 3 ],
          // 오버라이드 가능한 변수
          "$rc_offdialog_content": "runeui-common.help_button",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "#title_text" },
            { "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not((#title_text - 'herblore.decant.title') = #title_text))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
          }]
      }}
  ]},
  // ???/?? ??
  "decent_button": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 기준점에서 이동하는 거리
    "offset": [ -40, 3 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "runeui-brewing_table.decent_button_core"
    },
    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
  }]},
  // ???/?? ??
  "decent_button_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 게임 값과 연결하는 규칙 목록
    "bindings":[
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#form_button_text - 'herblore.decant.title') = #form_button_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "button@common_buttons.light_text_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.form_button_click",
          // 오버라이드 가능한 변수
          "$button_text_binding_type": "collection",
          // 오버라이드 가능한 변수
          "$button_text_grid_collection_name": "form_buttons",
          // 오버라이드 가능한 변수
          "$button_text_max_size": [ "100%", 20 ],
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$focus_border_size_override": [ 0, 0 ],
          // 오버라이드 가능한 변수
          "$button_type_panel": "runeui-brewing_table.crafting_icon",
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$default_text_color": [ 0.85, 0.85, 0.85 ],
          // 오버라이드 가능한 변수
          "$hover_text_color": "$dark_button_hover_text_color",
          // 오버라이드 가능한 변수
          "$pressed_text_color": "$dark_button_pressed_text_color",
          // 오버라이드 가능한 변수
          "$locked_text_color": "$dark_button_locked_text_color",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
          }]
      }}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "crafting_icon@runeui-common.help_button_default": {
    // 사용할 이미지 경로
    "texture": "textures/ui/crafting_icon_1",
    // 가로/세로 크기
    "size": [ 12, 12 ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, -1 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "item_details_label": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not($hover_state or $pressed_state))",
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "#form_button_text",
          // ?? ??
          "text_alignment": "left",
          // ?? ?? ?
          "max_size": [ 300, "default" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 200,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 19 ],
          // ?? ??
          "shadow": true,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            { "binding_name": "#form_button_text",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
          }],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "background": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": -10,
                // 가로/세로 크기
                "size": [ "100% + 14px", "100% + 12px" ],
                // 사용할 이미지 경로
                "texture": "textures/ui/general_textbox"
            }},
            { "shadow": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": -11,
                // ???
                "alpha": 0.5,
                // 가로/세로 크기
                "size": [ "100% + 14px", "100% + 12px" ],
                // 사용할 이미지 경로
                "texture": "textures/ui/hud_tip_text_background",
                // 기준점에서 이동하는 거리
                "offset": [ 2, 2 ]
            }}
      ]}}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel@runeui-form.long_form_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-brewing_table.scrolling_content"
  },
  // ??? ??
  "scrolling_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding_00": { "type": "panel", "size": [ "100%", 3 ]}},
      { "label_offset_panel@runeui-common.dialog_box": {}},
      { "padding": { "type": "panel", "size": [ "100%", 10 ]}},
      { "wrapping_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100% - 12px", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "element@runeui-form.element_factory": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 30,
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // 오버라이드 가능한 변수
                "$runeui:panel_control": "runeui-brewing_table.grid_button_panel_padding",
                // 오버라이드 가능한 변수
                "$runeui:condition": "$runeui:form_condition"
            }}
      ]}}
  ]},
  // ???/?? ??
  "grid_button_panel_padding": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // ??? ?? ?
    "grid_item_template": "runeui-common.grid_button_core",
		// ??? ?? ?
		"grid_rescaling_type": "horizontal",
		// 목록 이름
		"collection_name": "form_buttons",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{	"binding_name": "#form_button_length" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#form_button_length - 1)",
        // 결과가 들어갈 속성
        "target_property_name": "#maximum_grid_items"
      }
	]},
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel_modal@runeui-form.custom_form_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-brewing_table.scrolling_modal"
  },
  // ???/?? ??
  "scrolling_modal": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding": { "type": "panel", "size": [ "100%", 3 ]}},
      { "generated_form@runeui-form.generated_contents": {}},
      { "submit_button@common_buttons.light_text_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.submit_custom_form",
          // 가로/세로 크기
          "size": [ "100% - 8px", 32 ],
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$default_text_color": [ 0.85, 0.85, 0.85 ],
          // 오버라이드 가능한 변수
          "$hover_text_color": "$dark_button_hover_text_color",
          // 오버라이드 가능한 변수
          "$pressed_text_color": "$dark_button_pressed_text_color",
          // 오버라이드 가능한 변수
          "$locked_text_color": "$dark_button_locked_text_color",
          // 오버라이드 가능한 변수
          "$button_text": "Craft!",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "#submit_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
          }]
      }}
  ]}
}

chat_filter.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: chat_filter.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-chat_filter",
  // ???/?? ??
  "messages_text_core": {
    // 오버라이드 가능한 변수
    "$runeui:text_offset": [ 0, 0 ],
    // 글자 표시
    "type": "label",
    // ?? (R,G,B,A)
    "color": "$chat_text_color",
    // ?? ??
    "localize": false,
    // 기준점에서 이동하는 거리
    "offset": "$runeui:text_offset",
    // 가로/세로 크기
    "size": [ "100%", "default" ],
    // 보여줄 글자
    "text": "#output_display",
    // ??? ?? ?
    "text_tts": "#output_display",
    // ??
    "font_type": "$chat_font_type",
    // ?? ?? ??
    "font_scale_factor": "$chat_font_scale_factor",
    // ??/?? ?
    "line_padding": "$chat_line_spacing"
  },
  // ???/?? ??
  "label_states": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 13 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "new_ui_binding_button_label": {
          // 글자 표시
          "type": "label",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // 보여줄 글자
          "text": "$button_text",
          // ?? (R,G,B,A)
          "color": "$text_color",
          // ?? ??
          "text_alignment": "center",
          // ?? ??
          "shadow": false,
          // 가로/세로 크기
          "size": [ "100%", 10 ]
      }}
      // { "gradient_background": {
      //     "ignored": "($pressed_state)",
      //     "type": "custom",
      //     "renderer": "gradient_renderer",
      //     "layer": 1,
      //     "size": [ "100% + 4px", "100%" ],
      //     "color1": [ 1, 0, 0, 0.2 ],
      //     "color2": [ 1, 0, 0, 0.7 ]
      // }},
      // { "gradient_background": {
      //     "ignored": "(not $pressed_state)",
      //     "type": "custom",
      //     "renderer": "gradient_renderer",
      //     "layer": 1,
      //     "size": [ "100% + 4px", "100%" ],
      //     "color1": [ 0, 1, 0, 0.2 ],
      //     "color2": [ 0, 1, 0, 0.7 ]
      // }}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "toggle_template@common_toggles.light_ui_toggle": {
    // 가로/세로 크기
    "size": [ "fill", 20 ],
    // 오버라이드 가능한 변수
    "$default_text_color": [ 0.7, 0.7, 0.7 ],
    // 오버라이드 가능한 변수
    "$hover_text_color": "$dark_toggle_hover_text_color",
    // 오버라이드 가능한 변수
    "$default_checked_text_color": "$dark_toggle_checked_default_text_color",
    // 오버라이드 가능한 변수
    "$hover_checked_text_color": "$dark_toggle_checked_hover_text_color",
    // 오버라이드 가능한 변수
    "$button_image_fill": true,
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$default_texture": "textures/ui/form_tab_back_full",
    // 오버라이드 가능한 변수
    "$hover_texture": "textures/ui/form_tab_front",
    // 오버라이드 가능한 변수
    "$pressed_texture": "textures/ui/form_tab_front",
    // 오버라이드 가능한 변수
    "$pressed_no_hover_texture": "textures/ui/form_tab_front_hover",
    // 오버라이드 가능한 변수
    "$default_border_visible": false,
    // 오버라이드 가능한 변수
    "$hover_border_visible": false
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "exp_toggle@toggle_template": {
    // 오버라이드 가능한 변수
    "$button_type_panel": "runeui-chat_filter.label_states",
    // 오버라이드 가능한 변수
    "$button_text|default": "%runeui.chat.experience_filter",
    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "rcui-exp_chat",
    // 오버라이드 가능한 변수
    "$toggle_name": "exp_chat"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "normal_toggle@toggle_template": {
    // 오버라이드 가능한 변수
    "$button_type_panel": "runeui-chat_filter.label_states",
    // 오버라이드 가능한 변수
    "$button_text|default": "%runeui.chat.chat_filter",
    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "rcui-normal_chat",
    // 오버라이드 가능한 변수
    "$toggle_name": "normal_chat"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "notif_toggle@toggle_template": {
    // 오버라이드 가능한 변수
    "$button_type_panel": "runeui-chat_filter.label_states",
    // 오버라이드 가능한 변수
    "$button_text|default": "%runeui.chat.notification.filter",
    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "rcui-notif_chat",
    // 오버라이드 가능한 변수
    "$toggle_name": "notif_chat"
  },
  // ???/?? ??
  "chat_bottom_panel_filter": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "horizontal",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -27 ],
    // 가로/세로 크기
    "size": [ "100%", 20 ],
    // ?? ?? ?
    "min_size": [ "100%", 20 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "normal_toggle@runeui-chat_filter.normal_toggle": {} },
      { "exp_toggle@runeui-chat_filter.exp_toggle": {} },
      { "notif_toggle@runeui-chat_filter.notif_toggle": {} }
  ]}
}

common.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: common.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-common",
  // ???/?? ??
  "outline_fade_starter": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "out_cubic",
    // 걸리는 시간(초)
    "duration": 1,
    // 시작 값
    "from": 0.0,
    // 끝 값
    "to": 1.0,
    // 다음 애니메이션으로 연결
    "next": "@runeui-common.outline_fade_0"
  },
  // ???/?? ??
  "outline_fade_0": {
    // 투명도 변화
    "anim_type": "alpha",
    // 걸리는 시간(초)
    "duration": 2,
    // 움직임 곡선
    "easing": "in_out_sine",
    // 시작 값
    "from": 1,
    // 끝 값
    "to": 0.6,
    // 다음 애니메이션으로 연결
    "next": "@runeui-common.outline_fade_1"
  },
  // ???/?? ??
  "outline_fade_1": {
    // 투명도 변화
    "anim_type": "alpha",
    // 걸리는 시간(초)
    "duration": 2,
    // 움직임 곡선
    "easing": "in_out_sine",
    // 시작 값
    "from": 0.6,
    // 끝 값
    "to": 1,
    // 다음 애니메이션으로 연결
    "next": "@runeui-common.outline_fade_0"
  },
  // ???/?? ??
  "screen_outro_anim_push": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "in_cubic",
    // 걸리는 시간(초)
    "duration": "$transition_time_push",
    // 시작 값
    "from": "$pos_to",
    // 끝 값
    "to": "$pos_from",
    // ?? ??
    "play_event": "screen.exit_push",
    // ?? ??
    "end_event": "screen.exit_end"
  },
  // ???/?? ??
  "screen_outro_anim_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "in_cubic",
    // 걸리는 시간(초)
    "duration": "$transition_time_pop",
    // 시작 값
    "from": "$pos_to",
    // 끝 값
    "to": "$pos_from",
    // ?? ??
    "play_event": "screen.exit_pop",
    // ?? ??
    "end_event": "screen.exit_end"
  },
  // ???/?? ??
  "screen_entrance_animation_push_fade": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "out_cubic",
    // 걸리는 시간(초)
    "duration": "$transition_time_push",
    // 시작 값
    "from": 0.0,
    // 끝 값
    "to": 1.0,
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },
  // ???/?? ??
  "screen_entrance_animation_pop_fade": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "out_cubic",
    // 걸리는 시간(초)
    "duration": "$transition_time_pop",
    // 시작 값
    "from": 1.0,
    // 끝 값
    "to": 0.0,
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },
  // ???/?? ??
  "screen_entrance_anim_push": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_expo",
    // 걸리는 시간(초)
    "duration": "$transition_time_push",
    // 시작 값
    "from": "$pos_from",
    // 끝 값
    "to": "$pos_to",
    // ?? ??
    "play_event": "screen.entrance_push",
    // ?? ??
    "end_event": "screen.entrance_end"
  },
  // ???/?? ??
  "screen_entrance_anim_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_expo",
    // 걸리는 시간(초)
    "duration": "$transition_time_pop",
    // 시작 값
    "from": "$pos_from",
    // 끝 값
    "to": "$pos_to",
    // ?? ??
    "play_event": "screen.entrance_pop",
    // ?? ??
    "end_event": "screen.entrance_end"
  },
  // Can't optimize this so i just fetch it from the forms.
  // The '$dialog_text' can't be binding.
  "dialog_box": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": "$dialog_size",
    // 오버라이드 가능한 변수
    "$dialog_text|default": "#form_text",
    // 오버라이드 가능한 변수
    "$dialog_size|default": [ "100%", "100%c" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "main_label": {
          // 글자 표시
          "type": "label",
          // 기준점에서 이동하는 거리
          "offset": [ 2, 0 ],
          // 가로/세로 크기
          "size": [ "100% - 6px", "default" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10,
          // ?? ??
          "shadow": true,
          // 보여줄 글자
          "text": "$dialog_text",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "$dialog_text" },
            { "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(not ($dialog_text = ''))",
              // 결과가 들어갈 속성
              "target_property_name": "#visible"
          }],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "background": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ "100% + 20px", "100% + 6px" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": -1,
                // 기준점에서 이동하는 거리
                "offset": [ -2, 0 ],
                // 사용할 이미지 경로
                "texture": "textures/ui/solid_textbox"
            }}
      ]}}
  ]},
  // ???/?? ??
  "gradient_background": {
    // 특수 렌더러(그라디언트/플레이어 등)
    "type": "custom",
    // 커스텀 렌더러 종류
    "renderer": "gradient_renderer",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 가로/세로 크기
    "size": [ "125%", "125%" ],
    // 오버라이드 가능한 변수
    "$rc_gradient_color1|default": [ 0.756, 0.466, 0.929, 0 ],
    // 오버라이드 가능한 변수
    "$rc_gradient_color2|default": [ 0.756, 0.466, 0.929, 0.7 ],
    // ?? ?? ?
    "color1": "$rc_gradient_color1",
    // ?? ?? ?
    "color2": "$rc_gradient_color2",
    // 애니메이션 목록
    "anims": [
      "@runeui-common.loop_test_1"
    ]
  },
  // ???/?? ??
  "loop_test_0": {
    // 투명도 변화
    "anim_type": "alpha",
    // 걸리는 시간(초)
    "duration": 2,
    // 움직임 곡선
    "easing": "in_out_sine",
    // 시작 값
    "from": 1,
    // 끝 값
    "to": 0.6,
    // 다음 애니메이션으로 연결
    "next": "@runeui-common.loop_test_1"
  },
  // ???/?? ??
  "loop_test_1": {
    // 투명도 변화
    "anim_type": "alpha",
    // 걸리는 시간(초)
    "duration": 2,
    // 움직임 곡선
    "easing": "in_out_sine",
    // 시작 값
    "from": 0.6,
    // 끝 값
    "to": 1,
    // 다음 애니메이션으로 연결
    "next": "@runeui-common.loop_test_0"
  },
  // ???/?? ??
  "gradient_background_black": {
    // 특수 렌더러(그라디언트/플레이어 등)
    "type": "custom",
    // 커스텀 렌더러 종류
    "renderer": "gradient_renderer",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 오버라이드 가능한 변수
    "$rc_gradient_color2|default": [ 0.756, 0.466, 0.929, 0 ],
    // 오버라이드 가능한 변수
    "$rc_gradient_color1|default": [ 0.756, 0.466, 0.929, 0.7 ],
    // ?? ?? ?
    "color1": "$rc_gradient_color1",
    // ?? ?? ?
    "color2": "$rc_gradient_color2"
  },
  // ???/?? ??
  "background": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ "150%", "150%" ],
    // 사용할 이미지 경로
    "texture": "textures/ui/Black",
    // ???
    "alpha": 0.7,
    // 겹치는 순서(숫자 클수록 위)
    "layer": -120
  },
  // ???/?? ??
  "off_dialog": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 기준점에서 이동하는 거리
    "offset": "$rc_offdialog_offset",
    // 오버라이드 가능한 변수
    "$rc_offdialog_offset|default": [ -3, 3 ],
    // 오버라이드 가능한 변수
    "$rc_offdialog_content|default": "",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "dialogue_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/general_form",
          // 겹치는 순서(숫자 클수록 위)
          "layer": -2
      }},
      { "template@$rc_offdialog_content": {}}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "help_button@common_toggles.light_ui_toggle": {
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$border_visible": false,
    // 오버라이드 가능한 변수
    "$border_alpha": 0,
    // 오버라이드 가능한 변수
    "$button_image_fill": true,
    // 오버라이드 가능한 변수
    "$default_texture": "textures/ui/form_button",
    // 오버라이드 가능한 변수
    "$hover_texture": "textures/ui/form_button_pressed",
    // 오버라이드 가능한 변수
    "$pressed_texture": "textures/ui/form_button_pressed",
    // 오버라이드 가능한 변수
    "$pressed_no_hover_texture": "textures/ui/form_button_pressed",
    // 오버라이드 가능한 변수
    "$default_border_visible": false,
    // 오버라이드 가능한 변수
    "$hover_border_visible": false,
    // 오버라이드 가능한 변수
    "$button_type_panel": "runeui-common.help_states",
    // 오버라이드 가능한 변수
    "$button_text|default": "%runeui.chat.notification.filter",
    // 오버라이드 가능한 변수
    "$toggle_view_binding_name": "rcui-help_state",
    // 오버라이드 가능한 변수
    "$toggle_name": "help_state"
  },
  // ???/?? ??
  "help_states": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", 13 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "label": {
          // 글자 표시
          "type": "label",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 보여줄 글자
          "text": "?",
          // 오버라이드 가능한 변수
          "$rc_label_color|default": [ 1, 1, 1 ],
          // ?? (R,G,B,A)
          "color": "$rc_label_color",
          // 조건에 따라 변수 값을 바꾸기
          "variables": [
            { "requires": "$pressed_state",
              // 오버라이드 가능한 변수
              "$rc_label_color": "$e_color_format"
          }]
      }},
      { "item_details_label": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $pressed_state)",
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "$rc_hover_word",
          // ?? ??
          "text_alignment": "left",
          // ?? ?? ?
          "max_size": [ 300, "default" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 200,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 기준점에서 이동하는 거리
          "offset": [ -92, 25 ],
          // ?? ??
          "shadow": true,
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "background": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": -10,
                // 가로/세로 크기
                "size": [ "100% + 14px", "100% + 12px" ],
                // 사용할 이미지 경로
                "texture": "textures/ui/general_textbox"
            }},
            { "shadow": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": -11,
                // ???
                "alpha": 0.5,
                // 가로/세로 크기
                "size": [ "100% + 14px", "100% + 12px" ],
                // 사용할 이미지 경로
                "texture": "textures/ui/hud_tip_text_background",
                // 기준점에서 이동하는 거리
                "offset": [ 2, 2 ]
            }}
      ]}}
  ]},
  // ???/?? ??
  "help_button_default": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/form_button",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "label": {
          // 글자 표시
          "type": "label",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // 보여줄 글자
          "text": "?"
      }}
  ]},
  // ???/?? ??
  "close_button_default": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/form_button",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "image": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ 16, 16 ],
          // 사용할 이미지 경로
          "texture": "textures/ui/close_X_button"
      }}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "close_button_pressed@runeui-common.close_button_default": {
    // 사용할 이미지 경로
    "texture": "textures/ui/form_button_pressed",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "image": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ 16, 16 ],
          // 사용할 이미지 경로
          "texture": "textures/ui/close_X_button_hover"
      }}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "close_button@common.button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.menu_exit",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 포커스 가능 여부
    "focus_enabled": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "default@runeui-common.close_button_default": {} },
      { "hover@runeui-common.close_button_pressed": {} },
      { "pressed@runeui-common.close_button_pressed": {} }
  ]},
  // ???/?? ??
  "grid_button_panel_core": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 오버라이드 가능한 변수
    "$grid_dimensions|default": [ 6, 3 ],
    // 그리드 칸 수
    "grid_dimensions": "$grid_dimensions",
    // ??? ?? ?
    "grid_item_template": "runeui-common.grid_button_core",
		// 목록 이름
		"collection_name": "form_buttons"
  },
  // ???/?? ??
  "grid_button_panel_padding": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // ??? ?? ?
    "grid_item_template": "runeui-common.grid_button_core",
		// ??? ?? ?
		"grid_fill_direction": "horizontal",
		// ??? ?? ?
		"grid_rescaling_type": "horizontal",
		// 목록 이름
		"collection_name": "form_buttons",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{	"binding_name": "#form_button_length" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#form_button_length - 1)",
        // 결과가 들어갈 속성
        "target_property_name": "#maximum_grid_items"
      }
	]},
  // ???/?? ??
  "grid_button_panel": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // ??? ?? ?
    "grid_item_template": "runeui-common.grid_button_core",
		// ??? ?? ?
		"grid_fill_direction": "horizontal",
		// ??? ?? ?
		"grid_rescaling_type": "horizontal",
		// 목록 이름
		"collection_name": "form_buttons",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{	"binding_name": "#form_button_length",
				// 가져온 값을 다른 속성으로 연결
				"binding_name_override": "#maximum_grid_items"
			}
	]},
  // ???/?? ??
  "grid_button_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 34, 34 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings":[
      { "binding_name": "#form_button_texture",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#texture = '') or (#texture = 'loading')))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 32, 32 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "image": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 100,
                // 가로/세로 크기
                "size": [ "100% - 2px", "100% - 2px" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings":[
                  { "binding_name": "#form_button_texture",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                  },
                  { "binding_name": "#form_button_texture_file_system",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture_file_system",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not ((#texture = '') or (#texture = 'loading')))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }]
            }},
            { "outline": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 사용할 이미지 경로
                "texture": "textures/ui/Black"
            }},
            { "button@common_buttons.light_text_button": {
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.form_button_click",
                // 오버라이드 가능한 변수
                "$button_text": "#null",
                // 오버라이드 가능한 변수
                "$button_text_binding_type": "collection",
                // 오버라이드 가능한 변수
                "$button_text_grid_collection_name": "form_buttons",
                // 오버라이드 가능한 변수
                "$button_text_max_size": [ "100%", 20 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_type": "collection_details",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                }],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "hover": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        { "outline": {
                            // 이미지 표시
                            "type": "image",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 5,
                            // 사용할 이미지 경로
                            "texture": "textures/ui/White"
                        }},
                        { "text_hover": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 가로/세로 크기
                            "size": [	"100%c", "100%c" ],
                            // ?? ??
                            "follows_cursor": true,
                            // ?? ??
                            "always_handle_pointer": true,
                            // ?? ??
                            "always_listen_to_input": true,
                            // ??? ?? ?
                            "allow_clipping": false,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 120,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              { "label_core": {
                                  // 글자 표시
                                  "type": "label",
                                  // 보여줄 글자
                                  "text": "#form_button_text",
                                  // ?? ??
                                  "shadow": true,
                                  // 기준점에서 이동하는 거리
                                  "offset": [ "60%", 0 ],
                                  // ?? ?? ?
                                  "max_size": [ 220, "default" ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    { "binding_name": "#form_button_text",
                                      // 목록 데이터를 반복 연결
                                      "binding_type": "collection",
                                      // 목록 이름
                                      "binding_collection_name": "form_buttons"
                                  }],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    { "background": {
                                        // 이미지 표시
                                        "type": "image",
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": -10,
                                        // 가로/세로 크기
                                        "size": [ "100% + 9px", "100% + 6px" ],
                                        // 사용할 이미지 경로
                                        "texture": "textures/ui/general_textbox"
                                    }},
                                    { "shadow": {
                                        // 이미지 표시
                                        "type": "image",
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": -11,
                                        // ???
                                        "alpha": 0.5,
                                        // 가로/세로 크기
                                        "size": [ "100% + 9px", "100% + 6px" ],
                                        // 사용할 이미지 경로
                                        "texture": "textures/ui/hud_tip_text_background",
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 2, 2 ]
                                    }}
                              ]}}
                        ]}}
                  ]}}
            ]}}
      ]}}
  ]},
  // ???/?? ??
  "standard_title_label": {
    // 글자 표시
    "type": "label",
    // 가로/세로 크기
    "size": "$title_size",
    // 기준점에서 이동하는 거리
    "offset": "$title_offset",
    // ?? ?? ?
    "max_size": "$title_size",
    // ?? (R,G,B,A)
    "color": "$title_text_color",
    // 보여줄 글자
    "text": "$title_text",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 4,
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // ?? ??
    "shadow": true,
    // ?? ??
    "text_alignment": "$title_alignment",
    // 오버라이드 가능한 변수
    "$title_size|default": [ "100%  - 16px", 10 ],
    // 오버라이드 가능한 변수
    "$title_offset|default": [ 0, 6 ],
    // 오버라이드 가능한 변수
    "$title_alignment|default": "left",
    // 오버라이드 가능한 변수
    "$title_text|default": "#output",
    // 오버라이드 가능한 변수
    "$pos|default": "%.0s",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('§z' + (#title_text - ($pos * #title_text)))",
        // 결과가 들어갈 속성
        "target_property_name": "#output"
  }]},
  // ???/?? ??
  "title_bar_divider": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": [ 1, 11 ],
    // 기준점에서 이동하는 거리
    "offset": [ -37, 5 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // ?? (R,G,B,A)
    "color": "$title_text_color",
    // 사용할 이미지 경로
    "texture": "textures/ui/White"
  }
}

exp_toast.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: exp_toast.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-exp_toast",
  // ???/?? ??
  "root_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 가로/세로 크기
    "size": [ 300, "100%c" ],
    // ?? ?? ?
    "max_size": [ 300, 50 ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, -53 ],
    // ?? ????
    "clips_children": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "factory_stack": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 가로/세로 크기
          "size": [ 170, "100%c" ],
          // 목록 아이템을 자동으로 생성
          "factory": {
            // ?? ??
            "name": "chat_item_factory",
            // ?? ?? ?
            "max_children_size": 10,
            // 팩토리 템플릿 매핑
            "control_ids": {
              // ?? ??
              "chat_item": "runeui-exp_toast@runeui-exp_toast.element"
          }}
      }}
  ]},
  // ???/?? ??
  "element": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 겹치는 순서(숫자 클수록 위)
    "layer": -20,
    // 가로/세로 크기
    "size": [ 170, "100%cm" ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, -1 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "@runeui-exp_toast.subbar": {}}
  ]},
  // ???/?? ??
  "subbar": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 170, 5 ],
    //"propagate_alpha": true,
    "layer": 10,
    //"texture": "textures/ui/Black",
    "alpha": 0.7,
    // 애니메이션 목록
    "anims": [
      "@runeui-exp_toast.anim_chat_pile_up"
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#chat_text",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "chat_text_grid",
        // ?? ???
        "binding_condition": "once"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#text - '<' - '>')",
        // 결과가 들어갈 속성
        "target_property_name": "#output"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not((#output - '\ue1fd') = #output))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "background": {
          // 이미지 표시
          "type": "image",
          // 가로/세로 크기
          "size": [ 200, "100%" ],
          // 사용할 이미지 경로
          "texture": "textures/ui/Black",
          // ???
          "alpha": 0.7,
          // ??? ?? ?
          "propagate_alpha": true,
          // 애니메이션 목록
          "anims": [
            "@runeui-exp_toast.anim_chat_bg_wait_bottom"
          ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "gradient_background_left": {
                // 특수 렌더러(그라디언트/플레이어 등)
                "type": "custom",
                // 커스텀 렌더러 종류
                "renderer": "gradient_renderer",
                // 가로/세로 크기
                "size": [ 30, "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ -30, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "left_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "left_middle",
                // ?? ??
                "gradient_direction": "horizontal",
                // ?? ?? ?
                "color1": [ 0, 0, 0, 0 ],
                // ?? ?? ?
                "color2": [ 0, 0, 0, 1 ]
            }},
            { "gradient_background_right": {
                // 특수 렌더러(그라디언트/플레이어 등)
                "type": "custom",
                // 커스텀 렌더러 종류
                "renderer": "gradient_renderer",
                // 가로/세로 크기
                "size": [ 30, "100%" ],
                // 기준점에서 이동하는 거리
                "offset": [ 30, 0 ],
                // 기준점(어디에서 시작할지)
                "anchor_from": "right_middle",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "right_middle",
                // ?? ??
                "gradient_direction": "horizontal",
                // ?? ?? ?
                "color1": [ 0, 0, 0, 1 ],
                // ?? ?? ?
                "color2": [ 0, 0, 0, 0 ]
            }}
      ]}},
      { "text_wrapper": {
          // 클릭 가능한 버튼
          "type": "button",
          // 가로/세로 크기
          "size": [ 170, "100%" ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 5,
          // 기준점에서 이동하는 거리
          "offset": [ 2, 0 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "text": {
                // 글자 표시
                "type": "label",
                // 보여줄 글자
                "text": "#chat_text",
                // 기준점(어디에서 시작할지)
                "anchor_from": "bottom_left",
                // 붙일 위치(어디에 놓을지)
                "anchor_to": "bottom_left",
                // ?? ??
                "shadow": true,
                // 기준점에서 이동하는 거리
                "offset": [ 0, -1.5 ],
                // ?? ??
                "localize": false,
                // 가로/세로 크기
                "size": [ 200, "default" ],
                // ?? ??
                "enable_profanity_filter": true,
                // ?? ?? ??
                "font_scale_factor": 0.75,
                // 애니메이션 목록
                "anims": [ "@runeui-exp_toast.anim_chat_txt_wait" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_name": "#text",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "chat_text_grid"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "('§z' + (#text - (%.3s * #text)))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#chat_text"
                }]
            }}
      ]}}
  ]},
  // ???/?? ??
  "anim_chat_pile_up": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "out_expo",
    // 걸리는 시간(초)
    "duration": 0.5,
    // 시작 값
    "from": [ 200, 0 ],
    // 끝 값
    "to": [ 200, 10 ]
  },
  // ???/?? ??
  "anim_chat_bg_alpha_bottom": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_quart",
    // 걸리는 시간(초)
    "duration": 1,
    // 시작 값
    "from": 0.7,
    // 끝 값
    "to": 0
  },
  // ???/?? ??
  "anim_chat_bg_wait_bottom": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 0.5,
    // 다음 애니메이션으로 연결
    "next": "@runeui-exp_toast.anim_chat_bg_alpha_bottom"
  },
  // ???/?? ??
  "anim_chat_txt_alpha": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_quart",
    // 걸리는 시간(초)
    "duration": 0.7,
    // 시작 값
    "from": 1,
    // 끝 값
    "to": 0
  },
  // ???/?? ??
  "anim_chat_txt_wait": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 1,
    // 다음 애니메이션으로 연결
    "next": "@runeui-exp_toast.anim_chat_txt_alpha"
  },

  // ???/?? ??
  "progress_bar_anim": {
    // 크기 변화
    "anim_type": "size",
    // 시작 값
    "from": [ "0%", 1 ],
    // 끝 값
    "to": [ "100% - 8px", 1 ],
    // 걸리는 시간(초)
    "duration": "($chat_item_lifetime + 2)"
  },
  // ???/?? ??
  "anim_chat_stack": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "out_expo",
    // 걸리는 시간(초)
    "duration": 0.5,
    // 시작 값
    "from": [ 180, 0 ],
    // 끝 값
    "to": [ 180, "100%c" ]
  },
  // ???/?? ??
  "anim_chat_bg_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_expo",
    // 걸리는 시간(초)
    "duration": 1,
    // 시작 값
    "from": [ "100%", 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // 다음 애니메이션으로 연결
    "next": "@runeui-exp_toast.anim_chat_bg_wait_push"
  },
  // ???/?? ??
  "anim_chat_bg_wait_push": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 1,
    // 다음 애니메이션으로 연결
    "next": "@runeui-exp_toast.anim_chat_bg_push"
  },
  // ???/?? ??
  "anim_chat_bg_push": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "in_expo",
    // 걸리는 시간(초)
    "duration": 1,
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ "100%", 0 ],
    // ?? ??
    "destroy_at_end": "chat_grid_item"
  },
  // ???/?? ??
  "toast_image_template": {
    // 오버라이드 가능한 변수
    "$arx:chat_image_binding|default": "#text",
    // 이미지 표시
    "type": "image",
    // ??? ?? ?
    "force_texture_reload": true,
    // ??? ?? ?
    "allow_debug_missing_texture": false,
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#chat_text",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "chat_text_grid",
        // ?? ???
        "binding_condition": "once"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$arx:chat_image_binding",
        // 결과가 들어갈 속성
        "target_property_name": "#texture"
  }]},
  // ???/?? ??
  "toast_label_template": {
	  // 오버라이드 가능한 변수
	  "$arx:chat_text_binding|default": "#text",
    // 글자 표시
    "type": "label",
    // ?? ?? ?
    "max_size": [ "100% - 18px", 20 ],
	  // 기준점(어디에서 시작할지)
	  "anchor_from": "left_middle",
	  // 붙일 위치(어디에 놓을지)
	  "anchor_to": "left_middle",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#chat_text",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "chat_text_grid",
        // ?? ???
        "binding_condition": "once"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$arx:chat_text_binding",
        // 결과가 들어갈 속성
        "target_property_name": "#displaytext"
  }]}
}

fletching_table.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: fletching_table.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-fletching_table",
  // ???/?? ??
  "element_modal": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$runeui:form_condition": "(not((#title_text - 'PLACEHOLDER') = #title_text))",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:form_condition",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "gradient@runeui-common.gradient_background": {}},
      { "modal@runeui-form.main_panel_no_buttons": {
          // 가로/세로 크기
          "size": [ 236, 200 ],
          // 오버라이드 가능한 변수
          "$title_text_color": [ 0.756, 0.466, 0.929 ],
          // 오버라이드 가능한 변수
          "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
          // 오버라이드 가능한 변수
          "$panel_indent_offset": [ 0, 23 ],
          // 오버라이드 가능한 변수
          "$custom_background": "runeui-fletching_table.dialog",
          // 오버라이드 가능한 변수
          "$rc_template": "runeui-fletching_table.scrolling_panel_modal",
          // 오버라이드 가능한 변수
          "$rc_custom_background": "runeui-fletching_table.background",
          // 오버라이드 가능한 변수
          "$rc_custom_background_size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
      }}
  ]},
  // ???/?? ??
  "element": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$runeui:form_condition": "(not((#title_text - 'PLACEHOLDER') = #title_text))",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:form_condition",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "gradient@runeui-common.gradient_background": {}},
      { "form_stacking": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%cm" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "panel": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 150, 200 ],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "filter@runeui-form.main_panel_no_buttons": {
                      // 가로/세로 크기
                      "size": [ 150, 146 ],
                      // 오버라이드 가능한 변수
                      "$runeuiDEBUGGER:filter_button_limit": 5, // ( 4 buttons - 1 padding )

                      // 오버라이드 가능한 변수
                      "$title_text_color": [ 0.756, 0.466, 0.929 ],
                      // 오버라이드 가능한 변수
                      "$title_text": "Filter",
                      // 오버라이드 가능한 변수
                      "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
                      // 오버라이드 가능한 변수
                      "$panel_indent_offset": [ 0, 23 ],
                      // 오버라이드 가능한 변수
                      "$custom_background": "runeui-fletching_table.dialog_filter",
                      // 오버라이드 가능한 변수
                      "$rc_template": "runeui-fletching_table.scrolling_panel_filter",
                      // 오버라이드 가능한 변수
                      "$rc_custom_background": "runeui-fletching_table.background_filter",
                      // 오버라이드 가능한 변수
                      "$rc_custom_background_size": [ "100%", "100%" ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 4
                  }}
            ]}},
            { "form@runeui-form.main_panel_no_buttons": {
                // 가로/세로 크기
                "size": [ 236, 200 ],
                // 오버라이드 가능한 변수
                "$runeuiDEBUGGER:grid_button_hider": 4, // ( 4 buttons )

                // 오버라이드 가능한 변수
                "$title_text_color": [ 0.756, 0.466, 0.929 ],
                // 오버라이드 가능한 변수
                "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
                // 오버라이드 가능한 변수
                "$panel_indent_offset": [ 0, 23 ],
                // 오버라이드 가능한 변수
                "$custom_background": "runeui-fletching_table.dialog",
                // 오버라이드 가능한 변수
                "$rc_template": "runeui-fletching_table.scrolling_panel",
                // 오버라이드 가능한 변수
                "$rc_custom_background": "runeui-fletching_table.background",
                // 오버라이드 가능한 변수
                "$rc_custom_background_size": [ "100%", "100%" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4
            }}
      ]}}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "dialog@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-fletching_table.dialog_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "background@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-fletching_table.background_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "dialog_filter@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-fletching_table.dialog_filter_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "background_filter@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-fletching_table.background_filter_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // ???/?? ??
  "background_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // ?? ????
    "clips_children": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "background_gradient@runeui-common.gradient_background_black": {}},
      { "panel_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/brewing_table/brewing_background",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이미지 반복 여부
          "tiled": true
      }}
  ]},
  // ???/?? ??
  "dialog_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "toolbar@runeui-form.form_style_toolbar": {
          // 오버라이드 가능한 변수
          "$runeui:help_button": false
      }},
      { "styler@runeui-form.form_style_main": {}}
  ]},
  // ???/?? ??
  "background_filter_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // ?? ????
    "clips_children": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "background_gradient@runeui-common.gradient_background_black": {}},
      { "panel_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/brewing_table/brewing_background",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 이미지 반복 여부
          "tiled": true
      }}
  ]},
  // ???/?? ??
  "dialog_filter_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "styler@runeui-form.form_style_main": {}}
  ]},
  // ???/?? ??
  "fletching_fliter": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "runeui-fletching_table.fletching_button"
    },
    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
  }]},
  // 다른 템플릿을 가져와서 확장(상속)
  "fletching_button@common_buttons.light_text_button": {
    // 가로/세로 크기
    "size": [ "100%", 30 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.form_button_click",
    // 오버라이드 가능한 변수
    "$button_text": "#form_button_text",
    // 오버라이드 가능한 변수
    "$button_text_binding_type": "collection",
    // 오버라이드 가능한 변수
    "$button_text_grid_collection_name": "form_buttons",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$border_visible": false,
    // 오버라이드 가능한 변수
    "$border_alpha": 0,
    // 오버라이드 가능한 변수
    "$button_image_fill": true,
    // 오버라이드 가능한 변수
    "$default_button_texture": "textures/ui/form_tab_left",
    // 오버라이드 가능한 변수
    "$hover_button_texture": "textures/ui/form_tab_left_hover",
    // 오버라이드 가능한 변수
    "$pressed_button_texture": "textures/ui/form_tab_left_hover",
    // 오버라이드 가능한 변수
    "$locked_button_texture": "textures/ui/form_tab_left",
    // 오버라이드 가능한 변수
    "$default_text_color": [ 0.85, 0.85, 0.85 ],
    // 오버라이드 가능한 변수
    "$hover_text_color": "$dark_button_hover_text_color",
    // 오버라이드 가능한 변수
    "$pressed_text_color": "$dark_button_pressed_text_color",
    // 오버라이드 가능한 변수
    "$locked_text_color": "$dark_button_locked_text_color",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, -1 ],
    // ?? ??
    "collection_index": "#collection_index_test",
    // 게임 값과 연결하는 규칙 목록
    "bindings":[
      { "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#collection_length - $runeuiDEBUGGER:filter_button_limit)",
        // 결과가 들어갈 속성
        "target_property_name": "#collection_limit"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#collection_index > #collection_limit)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      }]
  },
  // ???/?? ??
  "fletching_fliter_element": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 목록 이름
    "collection_name": "form_buttons",
    // 이 안에 들어가는 부품 목록
    "controls": [
       { "panel_stacking": {
          // 데이터 목록을 반복 배치
          "type": "collection_panel",
          // 가로/세로 크기
          "size": [ "100%", 120 ],
          // 목록 이름
          "collection_name": "form_buttons",
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "fletching_fliter@fletching_fliter": {}}
      ]}}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel_filter@runeui-form.long_form_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-fletching_table.scrolling_content_filter"
  },
  // ???/?? ??
  "scrolling_content_filter": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "fletching_fliter_element@runeui-fletching_table.fletching_fliter_element": {}}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel@runeui-form.long_form_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-fletching_table.scrolling_content"
  },
  // ??? ??
  "scrolling_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding_00": { "type": "panel", "size": [ "100%", 3 ]}},
      { "label_offset_panel@runeui-common.dialog_box": {}},
      { "padding": { "type": "panel", "size": [ "100%", 10 ]}},
      { "wrapping_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100% - 12px", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "element@runeui-form.element_factory": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 30,
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // 오버라이드 가능한 변수
                "$runeui:panel_control": "runeui-fletching_table.grid_button_panel_padding",
                // 오버라이드 가능한 변수
                "$runeui:condition": "$runeui:form_condition"
            }}
      ]}}
  ]},
  // ???/?? ??
  "grid_button_panel_padding": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // ??? ?? ?
    "grid_item_template": "runeui-common.grid_button_core",
		// ??? ?? ?
		"grid_rescaling_type": "horizontal",
		// 목록 이름
		"collection_name": "form_buttons",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{	"binding_name": "#form_button_length" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#form_button_length - $runeuiDEBUGGER:grid_button_hider)",
        // 결과가 들어갈 속성
        "target_property_name": "#maximum_grid_items"
      }
	]},
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel_modal@runeui-form.custom_form_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-fletching_table.scrolling_modal"
  },
  // ???/?? ??
  "scrolling_modal": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding": { "type": "panel", "size": [ "100%", 3 ]}},
      { "generated_form@runeui-form.generated_contents": {}},
      { "submit_button@common_buttons.light_text_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.submit_custom_form",
          // 가로/세로 크기
          "size": [ "100% - 8px", 32 ],
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$default_text_color": [ 0.85, 0.85, 0.85 ],
          // 오버라이드 가능한 변수
          "$hover_text_color": "$dark_button_hover_text_color",
          // 오버라이드 가능한 변수
          "$pressed_text_color": "$dark_button_pressed_text_color",
          // 오버라이드 가능한 변수
          "$locked_text_color": "$dark_button_locked_text_color",
          // 오버라이드 가능한 변수
          "$button_text": "Craft!",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "#submit_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
          }]
      }}
  ]}
}

fuel_selection.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: fuel_selection.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-fuel_selection",
  // ???/?? ??
  "element": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$runeui:form_condition": "(not((#title_text - 'fuel.title') = #title_text))",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:form_condition",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "gradient@runeui-common.gradient_background": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 1.000, 0.333, 0.000, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 1.000, 0.333, 0.000, 0.7 ]
      }},
      { "form@runeui-form.main_panel_no_buttons": {
          // 가로/세로 크기
          "size": [ 236, 200 ],
          // 오버라이드 가능한 변수
          "$title_text_color": [ 1.000, 0.333, 0.000 ],
          // 오버라이드 가능한 변수
          "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
          // 오버라이드 가능한 변수
          "$panel_indent_offset": [ 0, 23 ],
          // 오버라이드 가능한 변수
          "$pos": "%.7s",
          // 오버라이드 가능한 변수
          "$title_alignment": "left",
          // 오버라이드 가능한 변수
          "$custom_background": "runeui-fuel_selection.dialog",
          // 오버라이드 가능한 변수
          "$rc_template": "runeui-fuel_selection.scrolling_panel",
          // 오버라이드 가능한 변수
          "$rc_custom_background": "runeui-fuel_selection.background",
          // 오버라이드 가능한 변수
          "$rc_custom_background_size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
      }}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "dialog@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-fuel_selection.dialog_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "background@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-fuel_selection.background_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // ???/?? ??
  "background_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "background_gradient@runeui-common.gradient_background_black": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 1.000, 0.333, 0.000, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 1.000, 0.333, 0.000, 0.7 ]
      }},
      { "panel_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/form_body_background",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ?? (R,G,B,A)
          "color": "$title_text_color",
          // 이미지 반복 여부
          "tiled": true
      }}
  ]},
  // ???/?? ??
  "dialog_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "toolbar@runeui-form.form_style_toolbar": {
          // 오버라이드 가능한 변수
          "$rc_hover_word": "runeui.help.fuel"
      }},
      { "styler@runeui-form.form_style_main": {}},
      { "debug_text": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "#output",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4,
          // ?? ??
          "shadow": true,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 기준점에서 이동하는 거리
          "offset": [ -54, 6 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "#title_text" },
            { "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(('§z') + (#title_text - ('%.3s' * #title_text)))",
              // 결과가 들어갈 속성
              "target_property_name": "#output"
          }]
      }},
      { "fuel_icon": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/blocks/runecraft_furnace_active",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 기준점에서 이동하는 거리
          "offset": [ -38, 4.5 ],
          // 가로/세로 크기
          "size": [ 12, 12 ]
      }},
      { "salvage_button@runeui-fuel_selection.salvage_button": {}},
      { "smelting_button@runeui-fuel_selection.smelting_button": {}},
      { "selected_tab@runeui-fuel_selection.selected_tab": {}}
  ]},
  // ???/?? ??
  "selected_tab": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "33.333%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -19 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "locked_button@common_buttons.light_text_button": {
          // ??/???
          "enabled": false,
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$button_text": "fuel.title",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "",
          // 오버라이드 가능한 변수
          "$button_text_max_size": [ "100%", 20 ],
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_tab_front",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_tab_front_hover",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_tab_front_hover",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_tab_front",
          // 오버라이드 가능한 변수
          "$locked_text_color": [ 0.5, 0.5, 0.5 ]
      }},
      { "outline": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 겹치는 순서(숫자 클수록 위)
          "layer": -2,
          // ???
          "alpha": 0.5,
          // 가로/세로 크기
          "size": [ "100% + 2px", "100% - 1px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, -1.5 ],
          // ?? (R,G,B,A)
          "color": "$title_text_color",
          // 애니메이션 목록
          "anims": [ "@runeui-common.outline_fade_starter" ]
      }}
  ]},
  // ???/?? ??
  "smelting_button": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 가로/세로 크기
    "size": [ "33.333%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -16 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": -8,
    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "runeui-fuel_selection.smelting_button_core"
    },
    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
  }]},
  // 다른 템플릿을 가져와서 확장(상속)
  "smelting_button_core@common_buttons.light_text_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.form_button_click",
    // 오버라이드 가능한 변수
    "$button_text": "smelting.title",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$border_visible": false,
    // 오버라이드 가능한 변수
    "$border_alpha": 0,
    // 오버라이드 가능한 변수
    "$button_image_fill": true,
    // 오버라이드 가능한 변수
    "$default_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$hover_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$pressed_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$locked_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$default_text_color": [ 0.85, 0.85, 0.85 ],
    // 오버라이드 가능한 변수
    "$hover_text_color": "$dark_button_hover_text_color",
    // 오버라이드 가능한 변수
    "$pressed_text_color": "$dark_button_pressed_text_color",
    // 오버라이드 가능한 변수
    "$locked_text_color": "$dark_button_locked_text_color",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, -1 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#form_button_text - 'smelting.title') = #form_button_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
    }]
  },
  // ???/?? ??
  "salvage_button": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 가로/세로 크기
    "size": [ "33.333%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -16 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": -8,
    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "runeui-fuel_selection.salvage_button_core"
    },
    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
  }]},
  // 다른 템플릿을 가져와서 확장(상속)
  "salvage_button_core@common_buttons.light_text_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.form_button_click",
    // 오버라이드 가능한 변수
    "$button_text": "salvage.title",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$border_visible": false,
    // 오버라이드 가능한 변수
    "$border_alpha": 0,
    // 오버라이드 가능한 변수
    "$button_image_fill": true,
    // 오버라이드 가능한 변수
    "$default_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$hover_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$pressed_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$locked_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$default_text_color": [ 0.85, 0.85, 0.85 ],
    // 오버라이드 가능한 변수
    "$hover_text_color": "$dark_button_hover_text_color",
    // 오버라이드 가능한 변수
    "$pressed_text_color": "$dark_button_pressed_text_color",
    // 오버라이드 가능한 변수
    "$locked_text_color": "$dark_button_locked_text_color",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, -1 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#form_button_text - 'salvage.title') = #form_button_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
    }]
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel@runeui-form.long_form_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-fuel_selection.scrolling_content"
  },
  // ??? ??
  "scrolling_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding_00": { "type": "panel", "size": [ "100%", 3 ]}},
      { "label_offset_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "main_label": {
                // 글자 표시
                "type": "label",
                // 기준점에서 이동하는 거리
                "offset": [ 2, 0 ],
                // 가로/세로 크기
                "size": [ "100% - 6px", "default" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // ?? ??
                "shadow": true,
                // 보여줄 글자
                "text": "#form_text",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_name": "#form_text" },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (#form_text = ''))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "background": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "100% + 6px", "100% + 6px" ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": -1,
                      // 기준점에서 이동하는 거리
                      "offset": [ -2, 0 ],
                      // 사용할 이미지 경로
                      "texture": "textures/ui/solid_textbox"
                  }}
            ]}}
      ]}},
      { "padding": { "type": "panel", "size": [ "100%", 10 ]}},
      { "wrapping_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100% - 12px", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "element@runeui-form.element_factory": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 30,
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // 오버라이드 가능한 변수
                "$runeui:panel_control": "runeui-fuel_selection.grid_button_panel_padding",
                // 오버라이드 가능한 변수
                "$runeui:condition": "$runeui:form_condition"
            }}
      ]}}
  ]},
  // ???/?? ??
  "grid_button_panel_padding": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // ??? ?? ?
    "grid_item_template": "runeui-common.grid_button_core",
		// ??? ?? ?
		"grid_rescaling_type": "horizontal",
		// 목록 이름
		"collection_name": "form_buttons",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{	"binding_name": "#form_button_length" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#form_button_length - 2)",
        // 결과가 들어갈 속성
        "target_property_name": "#maximum_grid_items"
      }
	]}
}

gameplay.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: gameplay.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{ "namespace": "runeui-gameplay",
  // ???/?? ??
  "core_hud_element": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#show_survival_ui",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "huds@runeui-gameplay.element_huds": {}},
      { "debugger@runeui-gameplay.debugger": {}}

  ]},
  // ???/?? ??
  "debugger": {
    // 완전히 제거(공간도 없음)
    "ignored": true,
    // 글자 표시
    "type": "label",
    // 보여줄 글자
    "text": "#textdebug",
    // ?? ??
    "debug": "red",
    // 오버라이드 가능한 변수
    "$clip_texture_preserved": "%.24s",
    // 오버라이드 가능한 변수
    "$clip_preserved": "%.13s",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "view",
        // ?? ??
        "source_control_name": "koala_title_data_control",
        // 계산식/참조 값
        "source_property_name": "#preserved_text",
        // 결과가 들어갈 속성
        "target_property_name": "#preserved_text"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('§z') + ('textures/ui/health_orb_fg' + (#preserved_text - ($clip_texture_preserved * #preserved_text))))",
        // 결과가 들어갈 속성
        "target_property_name": "#textures"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('§z') + ('%.2s' * ((#preserved_text - ('%.13s' * #preserved_text))))",
        // 결과가 들어갈 속성
        "target_property_name": "#texture"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#preserved_text - ($clip_preserved * #preserved_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#clip_ratio_value"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#clip_ratio_value / 20)",
        // 결과가 들어갈 속성
        "target_property_name": "#clip_ratio"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('§z') + ( #textures ))",
        // 결과가 들어갈 속성
        "target_property_name": "#textdebug"
      }
    ]
  },
  // ???/?? ??
  "element_huds": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "health": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 사용할 이미지 경로
          "texture": "textures/ui/hud_bg",
          // 가로/세로 크기
          "size": [ 28, 28 ],
          // ???? ??
          "uv_size": [ 28, 28 ],
          // ???? ?? ??
          "uv": [ 0, 0 ],
          // 기준점에서 이동하는 거리
          "offset": [ -140, -22 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "foreground@element_foreground_renderer_adv": {
                // 오버라이드 가능한 변수
                "$clip_max": 20.0,
                // 오버라이드 가능한 변수
                "$clip_texture_source": "textures/ui/health_orb_fg",
                // 오버라이드 가능한 변수
                "$clip_texture_preserved": "%.24s",
                // 오버라이드 가능한 변수
                "$clip_preserved": "%.13s"
            }},
            { "label@element_label_color_renderer": {
                // 기준점에서 이동하는 거리
                "offset": [ 0.5, -19 ],
                // 오버라이드 가능한 변수
                "$clip_preserved": "%.13s",
                // 오버라이드 가능한 변수
                "$label_preserved": "%.3s"
            }}
      ]}},
      { "armor": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 사용할 이미지 경로
          "texture": "textures/ui/hud_bg",
          // 가로/세로 크기
          "size": [ 28, 28 ],
          // ???? ??
          "uv_size": [ 28, 28 ],
          // ???? ?? ??
          "uv": [ 28, 0 ],
          // 기준점에서 이동하는 거리
          "offset": [ -115, -3 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "foreground@element_foreground_renderer": {
                // 오버라이드 가능한 변수
                "$clip_max": 20.0,
                // 오버라이드 가능한 변수
                "$clip_texture_source": "textures/ui/armor_orb_fg",
                // 오버라이드 가능한 변수
                "$clip_preserved": "%.45s"
            }},
            { "label@element_label_renderer": {
              // 기준점에서 이동하는 거리
              "offset": [ 0.5, -19 ],
              // 오버라이드 가능한 변수
              "$label_preserved": "%.31s",
              // ?? (R,G,B,A)
              "color": [ 0.8196, 0.8588, 0.8509 ]
            }}
      ]}},
      { "prayer": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 사용할 이미지 경로
          "texture": "textures/ui/hud_bg",
          // 가로/세로 크기
          "size": [ 28, 28 ],
          // ???? ??
          "uv_size": [ 28, 28 ],
          // ???? ?? ??
          "uv": [ 56, 0 ],
          // 기준점에서 이동하는 거리
          "offset": [ 115, -3 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "foreground@element_foreground_renderer_adv": {
                // 오버라이드 가능한 변수
                "$clip_max": 20.0,
                // 오버라이드 가능한 변수
                "$clip_texture_source": "textures/ui/prayer_orb_fg",
                // 오버라이드 가능한 변수
                "$clip_texture_preserved": "%.83s",
                // 오버라이드 가능한 변수
                "$clip_preserved": "%.68s"
            }},
            { "label@element_label_color_renderer": {
              // 기준점에서 이동하는 거리
              "offset": [ 0.5, -19 ],
              // 오버라이드 가능한 변수
              "$clip_preserved": "%.68s",
              // 오버라이드 가능한 변수
              "$label_preserved": "%.54s"
            }}
      ]}},
      { "stamina": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 사용할 이미지 경로
          "texture": "textures/ui/hud_bg",
          // 가로/세로 크기
          "size": [ 28, 28 ],
          // ???? ??
          "uv_size": [ 28, 28 ],
          // ???? ?? ??
          "uv": [ 84, 0 ],
          // 기준점에서 이동하는 거리
          "offset": [ 140, -22 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "foreground@element_foreground_renderer_adv": {
                // 오버라이드 가능한 변수
                "$clip_max": 20.0,
                // 오버라이드 가능한 변수
                "$clip_texture_source": "textures/ui/stamina_orb_fg",
                // 오버라이드 가능한 변수
                "$clip_texture_preserved": "%.144s",
                // 오버라이드 가능한 변수
                "$clip_preserved": "%.131s"
            }},
            { "label@element_label_color_renderer": {
              // 기준점에서 이동하는 거리
              "offset": [ 0.5, -19 ],
              // 오버라이드 가능한 변수
              "$clip_preserved": "%.131s",
              // 오버라이드 가능한 변수
              "$label_preserved": "%.118s"
            }}
      ]}},
      { "prayer_buff_1@element_image_renderer": {
          // 오버라이드 가능한 변수
          "$image_texture_preserved": "%.87s",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점에서 이동하는 거리
          "offset": [ -16, -38 ]
      }},
      { "prayer_buff_2@element_image_renderer": {
          // 오버라이드 가능한 변수
          "$image_texture_preserved": "%.92s",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 0, -38 ]
      }},
      { "prayer_buff_3@element_image_renderer": {
          // 오버라이드 가능한 변수
          "$image_texture_preserved": "%.97s",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 16, -38 ]
      }},
      { "thieving_state_1@element_image_renderer_adv": {
          // 오버라이드 가능한 변수
          "$image_size": [ 52, 5 ],
          // 오버라이드 가능한 변수
          "$image_texture_source": "textures/ui/thieving_bar",
          // 오버라이드 가능한 변수
          "$image_texture_preserved": "%.148s",
          // 오버라이드 가능한 변수
          "$image_preserved": "%.148s",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점에서 이동하는 거리
          "offset": [ -52, -60 ]
      }},
      { "thieving_state_2@element_image_renderer_adv": {
          // 오버라이드 가능한 변수
          "$image_size": [ 52, 5 ],
          // 오버라이드 가능한 변수
          "$image_texture_source": "textures/ui/thieving_bar",
          // 오버라이드 가능한 변수
          "$image_texture_preserved": "%.152s",
          // 오버라이드 가능한 변수
          "$image_preserved": "%.152s",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 0, -60 ]
      }},
      { "thieving_state_3@element_image_renderer_adv": {
          // 오버라이드 가능한 변수
          "$image_size": [ 52, 5 ],
          // 오버라이드 가능한 변수
          "$image_texture_source": "textures/ui/thieving_bar",
          // 오버라이드 가능한 변수
          "$image_texture_preserved": "%.156s",
          // 오버라이드 가능한 변수
          "$image_preserved": "%.156s",
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 52, -60 ]
      }}
  ]},
  // ???/?? ??
  "element_foreground_renderer": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "$clip_texture_source",
    // ??? ??
    "clip_direction": "down",
    // ?? ??
    "clip_pixelperfect": false,
    // 가로/세로 크기
    "size": "$clip_size",
    // 오버라이드 가능한 변수
    "$clip_size|default": [ 20, 20 ],
    // 오버라이드 가능한 변수
    "$clip_max|default": 20.0,
    // 오버라이드 가능한 변수
    "$clip_texture_source|default": "textures/ui/health_orb_fg",
    // 오버라이드 가능한 변수
    "$clip_preserved|default": "%.13s",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "view",
        // ?? ??
        "source_control_name": "koala_title_data_control",
        // 계산식/참조 값
        "source_property_name": "#preserved_text",
        // 결과가 들어갈 속성
        "target_property_name": "#preserved_text"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#preserved_text - ($clip_preserved * #preserved_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#clip_ratio_value"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#clip_ratio_value / $clip_max)",
        // 결과가 들어갈 속성
        "target_property_name": "#clip_ratio"
      }
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "element_foreground_renderer_adv@runeui-gameplay.element_foreground_renderer": {
    // 사용할 이미지 경로
    "texture": "#texture",
    // 오버라이드 가능한 변수
    "$clip_texture_preserved|default": "%.24s",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "view",
        // ?? ??
        "source_control_name": "koala_title_data_control",
        // 계산식/참조 값
        "source_property_name": "#preserved_text",
        // 결과가 들어갈 속성
        "target_property_name": "#preserved_text"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('§z') + ($clip_texture_source + (#preserved_text - ($clip_texture_preserved * #preserved_text))))",
        // 결과가 들어갈 속성
        "target_property_name": "#texture"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#preserved_text - ($clip_preserved * #preserved_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#clip_ratio_value"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#clip_ratio_value / $clip_max)",
        // 결과가 들어갈 속성
        "target_property_name": "#clip_ratio"
      }
  ]},
  // ???/?? ??
  "element_foreground_label": {
    // 글자 표시
    "type": "label",
    // 보여줄 글자
    "text": "#text",
    // 가로/세로 크기
    "size": [ "default", 10 ],
    // ?? (R,G,B,A)
    "color": "$experience_text_color",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "view",
        // ?? ??
        "source_control_name": "koala_title_data_control",
        // 계산식/참조 값
        "source_property_name": "#preserved_text",
        // 결과가 들어갈 속성
        "target_property_name": "#preserved_text"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#preserved_text - ($label_preserved * #preserved_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#value"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#preserved_text - ($clip_preserved * #preserved_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#check"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('§z' + #value)",
        // 결과가 들어갈 속성
        "target_property_name": "#text"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#check < $min_value)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
  ]},
  // ???/?? ??
  "element_label_color_renderer": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%c" ],
    // 오버라이드 가능한 변수
    "$label_preserved|default": "%.3s",
    // 오버라이드 가능한 변수
    "$min_value|default": 15,
    // 오버라이드 가능한 변수
    "$clip_preserved|default": "%.13s",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "green@runeui-gameplay.element_foreground_label": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4,
          // ?? (R,G,B,A)
          "color": "$experience_text_color",
          // 오버라이드 가능한 변수
          "$min_value": 5
      }},
      { "yellow@runeui-gameplay.element_foreground_label": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 3,
          // ?? (R,G,B,A)
          "color": [ 0.9254, 0.9137, 0.1843 ],
          // 오버라이드 가능한 변수
          "$min_value": 10
      }},
      { "orange@runeui-gameplay.element_foreground_label": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 2,
          // ?? (R,G,B,A)
          "color": [ 0.9254, 0.6705, 0.1843 ],
          // 오버라이드 가능한 변수
          "$min_value": 15
      }},
      { "red@runeui-gameplay.element_label_renderer": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ?? (R,G,B,A)
          "color": [ 0.9254, 0.2941, 0.1843 ]
      }}
  ]},
  // ???/?? ??
  "element_label_color_renderer_core": {
    // 글자 표시
    "type": "label",
    // 보여줄 글자
    "text": "#text",
    // ?? ??
    "shadow": true,
    // ?? (R,G,B,A)
    "color": "$experience_text_color",
    // 오버라이드 가능한 변수
    "$label_preserved|default": "%.3s",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "view",
        // ?? ??
        "source_control_name": "koala_title_data_control",
        // 계산식/참조 값
        "source_property_name": "#preserved_text",
        // 결과가 들어갈 속성
        "target_property_name": "#preserved_text"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('§z' + (#preserved_text - ($label_preserved * #preserved_text)))",
        // 결과가 들어갈 속성
        "target_property_name": "#text"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#preserved_text - ($image_preserved * #preserved_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#preserved_text - ($clip_preserved * #preserved_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#clip_ratio_value"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#clip_ratio_value / $clip_max)",
        // 결과가 들어갈 속성
        "target_property_name": "#clip_ratio"
      }
  ]},
  // ???/?? ??
  "element_label_renderer": {
    // 글자 표시
    "type": "label",
    // 보여줄 글자
    "text": "#text",
    // ?? (R,G,B,A)
    "color": "$experience_text_color",
    // ?? ??
    "shadow": true,
    // 오버라이드 가능한 변수
    "$label_preserved|default": "%.3s",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "view",
        // ?? ??
        "source_control_name": "koala_title_data_control",
        // 계산식/참조 값
        "source_property_name": "#preserved_text",
        // 결과가 들어갈 속성
        "target_property_name": "#preserved_text"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "('§z' + (#preserved_text - ($label_preserved * #preserved_text)))",
        // 결과가 들어갈 속성
        "target_property_name": "#text"
      }
  ]},
  // ???/?? ??
  "element_image_renderer": {
    // 이미지 표시
    "type": "image",
    // 가로/세로 크기
    "size": "$image_size",
    // 오버라이드 가능한 변수
    "$image_size|default": [ 14, 14 ],
    // 오버라이드 가능한 변수
    "$image_texture_source|default": "textures/ui/prayers/",
    // 오버라이드 가능한 변수
    "$image_texture_preserved|default": "%.87s",
    // 오버라이드 가능한 변수
    "$image_preserved|default": "%.107s",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "view",
        // ?? ??
        "source_control_name": "koala_title_data_control",
        // 계산식/참조 값
        "source_property_name": "#preserved_text",
        // 결과가 들어갈 속성
        "target_property_name": "#preserved_text"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('§z') + ($image_texture_source + (#preserved_text - ($image_texture_preserved * #preserved_text))))",
        // 결과가 들어갈 속성
        "target_property_name": "#texture"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#preserved_text - ($image_preserved * #preserved_text)) = 1",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "element_image_renderer_adv@runeui-gameplay.element_image_renderer": {
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "view",
        // ?? ??
        "source_control_name": "koala_title_data_control",
        // 계산식/참조 값
        "source_property_name": "#preserved_text",
        // 결과가 들어갈 속성
        "target_property_name": "#preserved_text"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('§z') + ( $image_texture_source + ( #preserved_text - ($image_texture_preserved * #preserved_text))) )",
        // 결과가 들어갈 속성
        "target_property_name": "#texture"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('§z') + ( #preserved_text - ($image_preserved * #preserved_text)) ) < 3",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      }
  ]},
  // ???/?? ??
  "item_text_element": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%c", "100%c" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 999,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "item_text_aligner": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 가로/세로 크기
          "size": [ "100%c", "100%c" ],
          // 쌓는 방향(가로/세로)
          "orientation": "vertical",
          // 기준점에서 이동하는 거리
          "offset": [ 0, -42 ],
          // ?? ??
          "use_child_anchors": true,
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "exp_toast@runeui-exp_toast.root_panel": {}},
            { "craft_bg": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 82, 10 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_type": "view",
                    // ?? ??
                    "source_control_name": "koala_title_data_control",
                    // 계산식/참조 값
                    "source_property_name": "#preserved_text",
                    // 결과가 들어갈 속성
                    "target_property_name": "#preserved_text"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(('§z') + ( #preserved_text - ('%.172s' * #preserved_text)) > 0 )",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "background": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ 82, 4 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_left",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        { "binding_type": "view",
                          // ?? ??
                          "source_control_name": "koala_title_data_control",
                          // 계산식/참조 값
                          "source_property_name": "#preserved_text",
                          // 결과가 들어갈 속성
                          "target_property_name": "#preserved_text"
                        },
                        { "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(('§z') + ('textures/ui/craft_bg_' + (#preserved_text - ('%.172s' * #preserved_text))))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#texture"
                      }]
                  }},
                  { "foreground@element_foreground_renderer": {
                      // ??? ??
                      "clip_direction": "right",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_left",
                      // 기준점에서 이동하는 거리
                      "offset": [ 1, -1 ],
                      // 오버라이드 가능한 변수
                      "$clip_max": 40.0,
                      // 오버라이드 가능한 변수
                      "$clip_texture_source": "textures/ui/craft_fg",
                      // 오버라이드 가능한 변수
                      "$clip_preserved": "%.186s",
                      // 오버라이드 가능한 변수
                      "$clip_size": [ 80, 2 ]
                  }},
                  { "craft_count": {
                      // 글자 표시
                      "type": "label",
                      // 보여줄 글자
                      "text": "#text",
                      // 기준점에서 이동하는 거리
                      "offset": [ 84, 3 ],
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_left",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        { "binding_type": "view",
                          // ?? ??
                          "source_control_name": "koala_title_data_control",
                          // 계산식/참조 값
                          "source_property_name": "#preserved_text",
                          // 결과가 들어갈 속성
                          "target_property_name": "#preserved_text"
                        },
                        { "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "('x' + '§z' + (#preserved_text - ('%.202s' * #preserved_text)))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#text"
                      }]
                  }},
                  { "craft_icon": {
                      // 이미지 표시
                      "type": "image",
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_left",
                      // 가로/세로 크기
                      "size": [ 16, 16 ],
                      // 기준점에서 이동하는 거리
                      "offset": [ -10, 5 ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        { "binding_type": "view",
                          // ?? ??
                          "source_control_name": "koala_title_data_control",
                          // 계산식/참조 값
                          "source_property_name": "#preserved_text",
                          // 결과가 들어갈 속성
                          "target_property_name": "#preserved_text"
                        },
                        { "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(('§z') + ('textures/ui/crafting_icon_' + ( #preserved_text - ('%.172s' * #preserved_text) )) )",
                          // 결과가 들어갈 속성
                          "target_property_name": "#texture"
                      }]
                  }}
            ]}},
            { "item_text_factory": {
                // 리스트를 자동으로 생성하는 공장
                "type": "factory",
                // 가로/세로 크기
                "size": [ 100, 10 ],
                // 팩토리 템플릿 매핑
                "control_ids": {
                  // ??? ?? ?
                  "item_text": "@hud.item_name_text_root",
                  // ??? ?? ?
                  "jukebox_text": "@hud.jukebox_popup_text"
                }
              }
            }
          ]
        }
      }
    ]
  }
}

notif_toast.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: notif_toast.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-notif_toast",
  // ???/?? ??
  "root_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 가로/세로 크기
    "size": [ 200, "100%c" ],
    // ?? ?? ?
    "max_size": [ 200, "75%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "factory_stack": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 목록 아이템을 자동으로 생성
          "factory": {
            // ?? ??
            "name": "chat_item_factory",
            // ?? ?? ?
            "max_children_size": 50,
            // 팩토리 템플릿 매핑
            "control_ids": {
              // ?? ??
              "chat_item": "arx-notif_toast@runeui-notif_toast.element"
          }}
      }}
  ]},
  // ???/?? ??
  "element": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 999,
    // 가로/세로 크기
    "size": [ "100%cm", "100%cm" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "@runeui-notif_toast.notification_toast": {}}
  ]},
  /* [prefix]*/
  /* §3§r*/
  // ???/?? ??
  "check_factory": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 오버라이드 가능한 변수
    "$runeui:binding_name|default": "#title_text",
    // 오버라이드 가능한 변수
    "$runeui:panel_control|default": "",
    // 오버라이드 가능한 변수
    "$runeui:condition|default": "",
    // 목록 아이템을 자동으로 생성
    "factory": { "name": "void", "control_name": "runeui-notif_toast.notification_toast", "max_children_size": 1 },
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#chat_text",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "chat_text_grid",
        // ?? ???
        "binding_condition": "once"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#text - '<' - '>')",
        // 결과가 들어갈 속성
        "target_property_name": "#output"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not((#output - '\ue1ff') = #output))",
        // 결과가 들어갈 속성
        "target_property_name": "#condition"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#condition * 1)",
        // 결과가 들어갈 속성
        "target_property_name": "#collection_length"
    }]
  },
  // ???/?? ??
  "notification_toast": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 200, 42 ],
    // ??? ?? ?
    "propagate_alpha": true,
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 애니메이션 목록
    "anims": [
      "@runeui-notif_toast.anim_chat_stack_in",
      "@runeui-notif_toast.anim_chat_bg_pop"
    ],
    // 이 컨트롤 안에서 쓰는 임시 저장소
    "property_bag": {
      // ???/??? ?
      "#separator": ";"
    },
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "toast_bg@toast_image_template": {
          // 사용할 이미지 경로
          "texture": "textures/ui/notif",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 5,
          // 게임 값과 연결하는 규칙 목록
          "bindings": []
      }},
      { "toast_reveal@toast_image_template": {
          // 사용할 이미지 경로
          "texture": "textures/ui/notif_reveal",
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 30,
          // 애니메이션 목록
          "anims": [
            "@runeui-notif_toast.reveal_phase_out"
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": []
      }},
      { "background": {
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10,
          // ???
          "alpha": 0.75,
          // 기준점(어디에서 시작할지)
          "anchor_from": "left_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "left_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 8, 0 ],
          // 가로/세로 크기
          "size": [ 25, 25 ],
          // 사용할 이미지 경로
          "texture": "textures/ui/notif_icon_background",
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "texture_icon": {
                // 이미지 표시
                "type": "image",
                // 가로/세로 크기
                "size": [ 16, 16 ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_name": "#chat_text",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#text",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "chat_text_grid",
                    // ?? ???
                    "binding_condition": "once"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "('textures/' + (#text - '<' - '>' - '\ue1ff'))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#output"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#search + 1 * (not (('%.'+#search+'s') * #output = #output)) and (('%.'+#search+'s') * #output = ('%.'+#search+'s') * #output - ';')))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#search"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "((('%.'+#search+'s') * #output) - ';')",
                    // 결과가 들어갈 속성
                    "target_property_name": "#texture"
                  }]
            }}]
        }},
      { "progress_bar@toast_image_template": {
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 가로/세로 크기
          "size": [ "100% - 8px", 1 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10,
          // 기준점에서 이동하는 거리
          "offset": [ 4, -4 ],
          // 기준점(어디에서 시작할지)
          "anchor_from": "bottom_left",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "bottom_left",
          // 애니메이션 목록
          "anims": [
            "@runeui-notif_toast.progress_bar_anim",
            "@runeui-notif_toast.progress_bar_anim_fade"
          ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": []
      }},
      { "labels@toast_label_template": {
          // 글자 표시
          "type": "label",
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 가로/세로 크기
          "size": [ "100% - 44px", "100% - 12px" ],
          // 보여줄 글자
          "text": "#displaytext",
          // 기준점에서 이동하는 거리
          "offset": [ -6, 0 ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 10,
          // ?? ??
          "shadow": true,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "#chat_text",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#text",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "chat_text_grid",
              // ?? ???
              "binding_condition": "once"
            },
            { "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "('§z' + (#text - '<' - '>' - '\ue1ff'))",
              // 결과가 들어갈 속성
              "target_property_name": "#output"
            },
            { "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#search + 1 * (not (('%.'+#search+'s') * #output = #output)) and (('%.'+#search+'s') * #output = ('%.'+#search+'s') * #output - ';')))",
              // 결과가 들어갈 속성
              "target_property_name": "#search"
            },
            { "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(#output - ( ('%.'+#search+'s') * #output))",
              // 결과가 들어갈 속성
              "target_property_name": "#mask_2"
            },
            { "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(('§z') + (#mask_2 - ('%.4s' * #mask_2)))",
              // 결과가 들어갈 속성
              "target_property_name": "#displaytext"
          }]
      }}
    ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#chat_text",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "chat_text_grid",
        // ?? ???
        "binding_condition": "once"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#text - '<' - '>')",
        // 결과가 들어갈 속성
        "target_property_name": "#output"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not((#output - '\ue1ff') = #output))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
  }]},
  // ???/?? ??
  "progress_bar_anim": {
    // 크기 변화
    "anim_type": "size",
    // 시작 값
    "from": [ "0%", 1 ],
    // 끝 값
    "to": [ "100% - 8px", 1 ],
    // 걸리는 시간(초)
    "duration": "($chat_item_lifetime + 1.25)"
  },
  // ???/?? ??
  "progress_bar_anim_fade": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": "($chat_item_lifetime + 1)",
    // 다음 애니메이션으로 연결
    "next": "@runeui-notif_toast.progress_bar_anim_fade_out"
  },
  // ???/?? ??
  "progress_bar_anim_fade_out": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 0.75,
    // 시작 값
    "from": 1,
    // 끝 값
    "to": 0
  },
  // ???/?? ??
  "text_phase_prep": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": "($chat_item_lifetime / 2)",
    // 다음 애니메이션으로 연결
    "next": "@runeui-notif_toast.text_phase_prep_out"
  },
  // ???/?? ??
  "text_phase_prep_out": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "in_out_expo",
    // 걸리는 시간(초)
    "duration": 1,
    // 시작 값
    "from": 1,
    // 끝 값
    "to": 0
  },
  // ???/?? ??
  "reveal_phase": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": 1,
    // 다음 애니메이션으로 연결
    "next": "@runeui-notif_toast.reveal_phase_out"
  },
  // ???/?? ??
  "reveal_phase_out": {
    // 투명도 변화
    "anim_type": "alpha",
    // 움직임 곡선
    "easing": "linear",
    // 걸리는 시간(초)
    "duration": 1,
    // 시작 값
    "from": 1,
    // 끝 값
    "to": 0
  },
  // ???/?? ??
  "anim_chat_stack_ins": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "out_expo",
    // 걸리는 시간(초)
    "duration": 0.5,
    // 시작 값
    "from": [ 200, 0 ],
    // 끝 값
    "to": [ 200, 42 ],
    // 다음 애니메이션으로 연결
    "next": "@runeui-notif_toast.anim_chat_stack_wait"
  },
  // ???/?? ??
  "anim_chat_stack_in": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": "($chat_item_lifetime + 2)",
    // 다음 애니메이션으로 연결
    "next": "@runeui-notif_toast.anim_chat_stack_out"
  },
  // ???/?? ??
  "anim_chat_stack_out": {
    // 크기 변화
    "anim_type": "size",
    // 움직임 곡선
    "easing": "in_out_expo",
    // 걸리는 시간(초)
    "duration": 1,
    // 시작 값
    "from": [ 200, 42 ],
    // 끝 값
    "to": [ 200, 0 ],
    // ?? ??
    "destroy_at_end": "element"
  },
  // ???/?? ??
  "anim_chat_bg_pop": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "out_expo",
    // 걸리는 시간(초)
    "duration": 1,
    // 시작 값
    "from": [ "100%", 0 ],
    // 끝 값
    "to": [ 0, 0 ],
    // 다음 애니메이션으로 연결
    "next": "@runeui-notif_toast.anim_chat_bg_wait_push"
  },
  // ???/?? ??
  "anim_chat_bg_wait_push": {
    // 잠시 대기
    "anim_type": "wait",
    // 걸리는 시간(초)
    "duration": "$chat_item_lifetime",
    // 다음 애니메이션으로 연결
    "next": "@runeui-notif_toast.anim_chat_bg_push"
  },
  // ???/?? ??
  "anim_chat_bg_push": {
    // 위치 이동
    "anim_type": "offset",
    // 움직임 곡선
    "easing": "in_expo",
    // 걸리는 시간(초)
    "duration": 1,
    // 시작 값
    "from": [ 0, 0 ],
    // 끝 값
    "to": [ "100%", 0 ]
  },
  // ???/?? ??
  "toast_image_template": {
    // 오버라이드 가능한 변수
    "$arx:chat_image_binding|default": "#text",
    // 이미지 표시
    "type": "image",
    // ??? ?? ?
    "force_texture_reload": true,
    // ??? ?? ?
    "allow_debug_missing_texture": false,
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#chat_text",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "chat_text_grid",
        // ?? ???
        "binding_condition": "once"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$arx:chat_image_binding",
        // 결과가 들어갈 속성
        "target_property_name": "#texture"
  }]},
  // ???/?? ??
  "toast_label_template": {
	  // 오버라이드 가능한 변수
	  "$arx:chat_text_binding|default": "#text",
    // 글자 표시
    "type": "label",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#chat_text",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "chat_text_grid",
        // ?? ???
        "binding_condition": "once"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$arx:chat_text_binding",
        // 결과가 들어갈 속성
        "target_property_name": "#displaytext"
  }]}
}

noting.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: noting.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-noting",
  // ???/?? ??
  "element": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$runeui:form_condition": "(not((#title_text - 'noting_table.note.title') = #title_text))",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:form_condition",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "gradient@runeui-common.gradient_background": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 0.7686, 0.7098, 0.5137, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 0.7686, 0.7098, 0.5137, 0.7 ]
      }},
      { "form@runeui-form.main_panel_no_buttons": {
          // 가로/세로 크기
          "size": [ 236, 200 ],
          // 오버라이드 가능한 변수
          "$title_text_color": [ 0.7686, 0.7098, 0.5137 ],
          // 오버라이드 가능한 변수
          "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
          // 오버라이드 가능한 변수
          "$panel_indent_offset": [ 0, 23 ],
          // 오버라이드 가능한 변수
          "$custom_background": "runeui-noting.dialog",
          // 오버라이드 가능한 변수
          "$rc_template": "runeui-noting.scrolling_panel",
          // 오버라이드 가능한 변수
          "$rc_custom_background": "runeui-noting.background",
          // 오버라이드 가능한 변수
          "$rc_custom_background_size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
      }}
  ]},
  // ???/?? ??
  "dialog": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "main@runeui-form.element_factory": {
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$runeui:panel_control": "runeui-noting.dialog_core",
          // 오버라이드 가능한 변수
          "$runeui:condition": "$runeui:form_condition"
      }}
  ]},

  // 다른 템플릿을 가져와서 확장(상속)
  "background@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-noting.background_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "dialog_modal@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-noting.dialog_modal_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // ???/?? ??
  "background_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "background_gradient@runeui-common.gradient_background_black": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 0.7686, 0.7098, 0.5137, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 0.7686, 0.7098, 0.5137, 0.7 ]
      }},
      { "panel_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/form_body_background",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ?? (R,G,B,A)
          "color": "$title_text_color",
          // 이미지 반복 여부
          "tiled": true
      }}
  ]},
  // ???/?? ??
  "dialog_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      // Change your question mark string here (noting)
      // don't forget to delete this comment after you done with it -harlow
      { "toolbar@runeui-form.form_style_toolbar": {
          // 오버라이드 가능한 변수
          "$rc_hover_word": "runeui.help.smithing"
      }},
      { "styler@runeui-form.form_style_main": {}},
      { "noting@runeui-noting.noting": {}},
      { "unnote_all@runeui-noting.unnote_all": {}},
      { "divider@runeui-common.title_bar_divider": {}},
      { "selected_tab@runeui-noting.selected_tab": {}}
  ]},
  // ???/?? ??
  "dialog_modal_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "toolbar@runeui-form.form_style_toolbar": {
          // 오버라이드 가능한 변수
          "$runeui:help_button": false
      }},
      { "styler@runeui-form.form_style_main": {}}
  ]},
  // ???/?? ??
  "selected_tab": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "50%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -19 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "locked_button@common_buttons.light_text_button": {
          // ??/???
          "enabled": false,
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$button_text": "noting_table.note.title",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "",
          // 오버라이드 가능한 변수
          "$button_text_max_size": [ "100%", 20 ],
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_tab_front",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_tab_front_hover",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_tab_front_hover",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_tab_front",
          // 오버라이드 가능한 변수
          "$locked_text_color": [ 0.5, 0.5, 0.5 ]
      }},
      { "outline": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 겹치는 순서(숫자 클수록 위)
          "layer": -2,
          // ???
          "alpha": 0.5,
          // 가로/세로 크기
          "size": [ "100% + 2px", "100% - 1px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, -1.5 ],
          // ?? (R,G,B,A)
          "color": "$title_text_color",
          // 애니메이션 목록
          "anims": [ "@runeui-common.outline_fade_starter" ]
      }}
  ]},
  // ???/?? ??
  "unnote_all": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 기준점에서 이동하는 거리
    "offset": [ -40, 3 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "runeui-noting.unnote_all_core"
    },
    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
  }]},
  // ???/?? ??
  "unnote_all_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 게임 값과 연결하는 규칙 목록
    "bindings":[
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#form_button_text - 'noting_table.note.note_all') = #form_button_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "button@common_buttons.light_text_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.form_button_click",
          // 오버라이드 가능한 변수
          "$button_text_binding_type": "collection",
          // 오버라이드 가능한 변수
          "$button_text_grid_collection_name": "form_buttons",
          // 오버라이드 가능한 변수
          "$button_text_max_size": [ "100%", 20 ],
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$focus_border_size_override": [ 0, 0 ],
          // 오버라이드 가능한 변수
          "$button_type_panel": "runeui-noting.unnote_all_icon",
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$default_text_color": [ 0.85, 0.85, 0.85 ],
          // 오버라이드 가능한 변수
          "$hover_text_color": "$dark_button_hover_text_color",
          // 오버라이드 가능한 변수
          "$pressed_text_color": "$dark_button_pressed_text_color",
          // 오버라이드 가능한 변수
          "$locked_text_color": "$dark_button_locked_text_color",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
          }]
      }}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "unnote_all_icon@runeui-common.help_button_default": {
    // 사용할 이미지 경로
    "texture": "textures/ui/noting/note",
    // 가로/세로 크기
    "size": [ 12, 12 ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "item_details_label": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not($hover_state or $pressed_state))",
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "#form_button_text",
          // ?? ??
          "text_alignment": "left",
          // ?? ?? ?
          "max_size": [ 300, "default" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 200,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 19 ],
          // ?? ??
          "shadow": true,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            { "binding_name": "#form_button_text",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
          }],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "background": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": -10,
                // 가로/세로 크기
                "size": [ "100% + 14px", "100% + 12px" ],
                // 사용할 이미지 경로
                "texture": "textures/ui/general_textbox"
            }},
            { "shadow": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": -11,
                // ???
                "alpha": 0.5,
                // 가로/세로 크기
                "size": [ "100% + 14px", "100% + 12px" ],
                // 사용할 이미지 경로
                "texture": "textures/ui/hud_tip_text_background",
                // 기준점에서 이동하는 거리
                "offset": [ 2, 2 ]
            }}
      ]}}
  ]},
  // ???/?? ??
  "noting": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 가로/세로 크기
    "size": [ "50%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -16 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": -8,
    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "runeui-noting.noting_core"
    },
    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
  }]},
  // 다른 템플릿을 가져와서 확장(상속)
  "noting_core@common_buttons.light_text_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.form_button_click",
    // 오버라이드 가능한 변수
    "$button_text": "noting_table.unnote.title",
    // 오버라이드 가능한 변수
    "$button_text_max_size": [ "100%", 20 ],
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$border_visible": false,
    // 오버라이드 가능한 변수
    "$border_alpha": 0,
    // 오버라이드 가능한 변수
    "$button_image_fill": true,
    // 오버라이드 가능한 변수
    "$default_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$hover_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$pressed_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$locked_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$default_text_color": [ 0.85, 0.85, 0.85 ],
    // 오버라이드 가능한 변수
    "$hover_text_color": "$dark_button_hover_text_color",
    // 오버라이드 가능한 변수
    "$pressed_text_color": "$dark_button_pressed_text_color",
    // 오버라이드 가능한 변수
    "$locked_text_color": "$dark_button_locked_text_color",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, -1 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#form_button_text - 'noting_table.unnote.title') = #form_button_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
    }]
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel@runeui-form.long_form_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-noting.scrolling_content"
  },
  // ??? ??
  "scrolling_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding_00": { "type": "panel", "size": [ "100%", 3 ]}},
      { "label_offset_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "main_label": {
                // 글자 표시
                "type": "label",
                // 기준점에서 이동하는 거리
                "offset": [ 2, 0 ],
                // 가로/세로 크기
                "size": [ "100% - 6px", "default" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // ?? ??
                "shadow": true,
                // 보여줄 글자
                "text": "#form_text",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_name": "#form_text" },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (#form_text = ''))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "background": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "100% + 6px", "100% + 6px" ],
                      // ?? ??
                      "clip_pixelperfect": true,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": -1,
                      // 기준점에서 이동하는 거리
                      "offset": [ -2, 0 ],
                      // 사용할 이미지 경로
                      "texture": "textures/ui/solid_textbox"
                  }}
            ]}}
      ]}},
      { "padding": { "type": "panel", "size": [ "100%", 10 ]}},
      { "wrapping_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100% - 12px", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "element@runeui-form.element_factory": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 30,
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // 오버라이드 가능한 변수
                "$runeui:panel_control": "runeui-noting.grid_button_panel_padding",
                // 오버라이드 가능한 변수
                "$runeui:condition": "$runeui:form_condition"
            }}
      ]}}
  ]},
  // ???/?? ??
  "grid_button_panel_padding": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // ??? ?? ?
    "grid_item_template": "runeui-noting.grid_button_core",
		// ??? ?? ?
		"grid_rescaling_type": "horizontal",
		// 목록 이름
		"collection_name": "form_buttons",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{	"binding_name": "#form_button_length" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#form_button_length - 2)",
        // 결과가 들어갈 속성
        "target_property_name": "#maximum_grid_items"
      }
	]},
  // ???/?? ??
  "grid_button_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 34, 34 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings":[
      { "binding_name": "#form_button_texture",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#texture = '') or (#texture = 'loading')))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 32, 32 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "image": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 100,
                // 가로/세로 크기
                "size": [ 32, 32 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings":[
                  { "binding_name": "#form_button_texture",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                  },
                  { "binding_name": "#form_button_texture_file_system",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture_file_system",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not ((#texture = '') or (#texture = 'loading')))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }]
            }},
            { "outline": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 가로/세로 크기
                "size": [ 32, 32 ],
                // 사용할 이미지 경로
                "texture": "textures/ui/noting/default_frame"
            }},
            { "button@common_buttons.light_text_button": {
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.form_button_click",
                // 오버라이드 가능한 변수
                "$button_text": "#null",
                // 오버라이드 가능한 변수
                "$button_text_binding_type": "collection",
                // 오버라이드 가능한 변수
                "$button_text_grid_collection_name": "form_buttons",
                // 오버라이드 가능한 변수
                "$button_text_max_size": [ "100%", 20 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_type": "collection_details",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                }],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "hover": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        { "outline": {
                            // 이미지 표시
                            "type": "image",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 5,
                            // 가로/세로 크기
                            "size": [ 32, 32 ],
                            // 사용할 이미지 경로
                            "texture": "textures/ui/noting/hover_frame"
                        }},
                        { "text_hover": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 가로/세로 크기
                            "size": [	"100%c", "100%c" ],
                            // ?? ??
                            "follows_cursor": true,
                            // ?? ??
                            "always_handle_pointer": true,
                            // ?? ??
                            "always_listen_to_input": true,
                            // ??? ?? ?
                            "allow_clipping": false,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 120,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              { "label_core": {
                                  // 글자 표시
                                  "type": "label",
                                  // 보여줄 글자
                                  "text": "#form_button_text",
                                  // ?? ??
                                  "shadow": true,
                                  // 기준점에서 이동하는 거리
                                  "offset": [ "60%", 0 ],
                                  // ?? ?? ?
                                  "max_size": [ 220, "default" ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    { "binding_name": "#form_button_text",
                                      // 목록 데이터를 반복 연결
                                      "binding_type": "collection",
                                      // 목록 이름
                                      "binding_collection_name": "form_buttons"
                                  }],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    { "background": {
                                        // 이미지 표시
                                        "type": "image",
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": -10,
                                        // 가로/세로 크기
                                        "size": [ "100% + 9px", "100% + 6px" ],
                                        // 사용할 이미지 경로
                                        "texture": "textures/ui/general_textbox"
                                    }},
                                    { "shadow": {
                                        // 이미지 표시
                                        "type": "image",
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": -11,
                                        // ???
                                        "alpha": 0.5,
                                        // 가로/세로 크기
                                        "size": [ "100% + 9px", "100% + 6px" ],
                                        // 사용할 이미지 경로
                                        "texture": "textures/ui/hud_tip_text_background",
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 2, 2 ]
                                    }}
                              ]}}
                        ]}}
                  ]}}
            ]}}
      ]}}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel_modal@runeui-form.custom_form_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-noting.scrolling_modal"
  },
  // ???/?? ??
  "scrolling_modal": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding": { "type": "panel", "size": [ "100%", 3 ]}},
      { "generated_form@runeui-form.generated_contents": {}},
      { "submit_button@common_buttons.light_text_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.submit_custom_form",
          // 가로/세로 크기
          "size": [ "100% - 8px", 32 ],
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$default_text_color": [ 0.85, 0.85, 0.85 ],
          // 오버라이드 가능한 변수
          "$hover_text_color": "$dark_button_hover_text_color",
          // 오버라이드 가능한 변수
          "$pressed_text_color": "$dark_button_pressed_text_color",
          // 오버라이드 가능한 변수
          "$locked_text_color": "$dark_button_locked_text_color",
          // 오버라이드 가능한 변수
          "$button_text": "Smith!",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "#submit_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
          }]
      }}
  ]}
}

noting_amount.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: noting_amount.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-noting_amount",
  // ???/?? ??
  "element_modal": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$runeui:form_condition": "(not((#title_text - 'noting_table.amount_selection') = #title_text))",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:form_condition",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "gradient@runeui-common.gradient_background": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 0.7686, 0.7098, 0.5137, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 0.7686, 0.7098, 0.5137, 0.7 ]
      }},
      { "modal@runeui-form.main_panel_no_buttons": {
          // 가로/세로 크기
          "size": [ 236, 200 ],
          // 오버라이드 가능한 변수
          "$title_text_color": [ 0.7686, 0.7098, 0.5137 ],
          // 오버라이드 가능한 변수
          "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
          // 오버라이드 가능한 변수
          "$panel_indent_offset": [ 0, 23 ],
          // 오버라이드 가능한 변수
          "$custom_background": "runeui-noting_amount.dialog",
          // 오버라이드 가능한 변수
          "$rc_template": "runeui-noting_amount.scrolling_panel_modal",
          // 오버라이드 가능한 변수
          "$rc_custom_background": "runeui-noting_amount.background",
          // 오버라이드 가능한 변수
          "$rc_custom_background_size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
      }}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "dialog@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-noting_amount.dialog_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "background@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-noting_amount.background_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // ???/?? ??
  "background_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // ?? ????
    "clips_children": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "background_gradient@runeui-common.gradient_background_black": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 0.7686, 0.7098, 0.5137, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 0.7686, 0.7098, 0.5137, 0.7 ]
      }},
      { "panel_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/form_body_background",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ?? (R,G,B,A)
          "color": "$title_text_color",
          // 이미지 반복 여부
          "tiled": true
      }}
  ]},
  // ???/?? ??
  "dialog_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "toolbar@runeui-form.form_style_toolbar": {
          // 오버라이드 가능한 변수
          "$runeui:help_button": false
      }},
      { "styler@runeui-form.form_style_main": {}}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel_modal@runeui-form.custom_form_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-noting_amount.scrolling_modal"
  },
  // ???/?? ??
  "scrolling_modal": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding": { "type": "panel", "size": [ "100%", 3 ]}},
      { "generated_form@runeui-form.generated_contents": {}},
      { "submit_button@common_buttons.light_text_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.submit_custom_form",
          // 가로/세로 크기
          "size": [ "100% - 8px", 32 ],
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$default_text_color": [ 0.85, 0.85, 0.85 ],
          // 오버라이드 가능한 변수
          "$hover_text_color": "$dark_button_hover_text_color",
          // 오버라이드 가능한 변수
          "$pressed_text_color": "$dark_button_pressed_text_color",
          // 오버라이드 가능한 변수
          "$locked_text_color": "$dark_button_locked_text_color",
          // 오버라이드 가능한 변수
          "$button_text": "Note!",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "#submit_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
          }]
      }}
  ]}
}

prayer_menu.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: prayer_menu.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-prayer",
  // ???/?? ??
  "element": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$runeui:form_condition|default": "(not((#title_text - 'prayer.title') = #title_text))",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:form_condition",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "gradient@runeui-common.gradient_background": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 0.756, 0.886, 0.894, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 0.756, 0.886, 0.894, 0.7 ]
      }},
      { "form@runeui-form.main_panel_no_buttons": {
          // 가로/세로 크기
          "size": [ 236, 200 ],
          // 오버라이드 가능한 변수
          "$title_text_color": [ 0.756, 0.886, 0.894 ],
          // 오버라이드 가능한 변수
          "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
          // 오버라이드 가능한 변수
          "$panel_indent_offset": [ 0, 23 ],
          // 오버라이드 가능한 변수
          "$custom_background": "runeui-prayer.dialog",
          // 오버라이드 가능한 변수
          "$rc_template": "runeui-prayer.scrolling_panel",
          // 오버라이드 가능한 변수
          "$rc_custom_background": "runeui-prayer.background",
          // 오버라이드 가능한 변수
          "$rc_custom_background_size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
      }}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "dialog@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-prayer.dialog_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "background@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-prayer.background_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // ???/?? ??
  "background_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "background_gradient@runeui-common.gradient_background_black": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 0.756, 0.886, 0.894, 0.5 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 0.756, 0.886, 0.894, 0 ]
      }},
      { "panel_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/form_body_background",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ?? (R,G,B,A)
          "color": [ 0.098, 0.533, 0.764 ],
          // 이미지 반복 여부
          "tiled": true
      }}
  ]},
  // ???/?? ??
  "dialog_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "toolbar@runeui-form.form_style_toolbar": {
          // 오버라이드 가능한 변수
          "$rc_hover_word": "runeui.help.prayermenu"
      }},
      { "styler@runeui-form.form_style_main": {}}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel@runeui-form.long_form_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-prayer.scrolling_content"
  },
  // ??? ??
  "scrolling_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding_00": { "type": "panel", "size": [ "100%", 3 ]}},
      { "label_offset_panel@runeui-common.dialog_box": {}},
      { "padding_01": { "type": "panel", "size": [ "100%", 10 ]}},
      { "wrapping_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100% - 12px", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "element@runeui-form.element_factory": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 30,
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // 오버라이드 가능한 변수
                "$runeui:panel_control": "runeui-common.grid_button_panel",
                // 오버라이드 가능한 변수
                "$runeui:condition": "$runeui:form_condition"
            }}
      ]}}
  ]}
}

preload.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: preload.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{ "namespace": "runeui-preload",
  // ???/?? ??
  "root_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 16, 16 ],
    // 기준점에서 이동하는 거리
    "offset": [ -2048, -2048 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "health_orb_fg0": { "type": "image", "texture": "textures/ui/health_orb_fg0" }},
      { "health_orb_fg1": { "type": "image", "texture": "textures/ui/health_orb_fg1" }},
      { "health_orb_fg2": { "type": "image", "texture": "textures/ui/health_orb_fg2" }},
      { "health_orb_fg3": { "type": "image", "texture": "textures/ui/health_orb_fg3" }},
      { "health_orb_fg4": { "type": "image", "texture": "textures/ui/health_orb_fg4" }},
      { "prayer_orb_fg0": { "type": "image", "texture": "textures/ui/prayer_orb_fg0" }},
      { "prayer_orb_fg1": { "type": "image", "texture": "textures/ui/prayer_orb_fg1" }},
      { "stamina_orb_fg0": { "type": "image", "texture": "textures/ui/stamina_orb_fg0" }},
      { "stamina_orb_fg1": { "type": "image", "texture": "textures/ui/stamina_orb_fg1" }},
      { "armor_orb_fg": { "type": "image", "texture": "textures/ui/armor_orb_fg" }},
      { "prayer_0": { "type": "image", "texture": "textures/ui/prayers/0" }},
      { "prayer_1": { "type": "image", "texture": "textures/ui/prayers/1" }},
      { "prayer_2": { "type": "image", "texture": "textures/ui/prayers/2" }},
      { "prayer_3": { "type": "image", "texture": "textures/ui/prayers/3" }},
      { "prayer_4": { "type": "image", "texture": "textures/ui/prayers/4" }},
      { "prayer_5": { "type": "image", "texture": "textures/ui/prayers/5" }},
      { "prayer_6": { "type": "image", "texture": "textures/ui/prayers/6" }},
      { "prayer_7": { "type": "image", "texture": "textures/ui/prayers/7" }},
      { "prayer_8": { "type": "image", "texture": "textures/ui/prayers/8" }},
      { "prayer_9": { "type": "image", "texture": "textures/ui/prayers/9" }},
      { "prayer_10": { "type": "image", "texture": "textures/ui/prayers/10" }},
      { "prayer_11": { "type": "image", "texture": "textures/ui/prayers/11" }},
      { "prayer_12": { "type": "image", "texture": "textures/ui/prayers/12" }},
      { "prayer_13": { "type": "image", "texture": "textures/ui/prayers/13" }},
      { "prayer_14": { "type": "image", "texture": "textures/ui/prayers/14" }},
      { "prayer_15": { "type": "image", "texture": "textures/ui/prayers/15" }},
      { "prayer_16": { "type": "image", "texture": "textures/ui/prayers/16" }},
      { "prayer_17": { "type": "image", "texture": "textures/ui/prayers/17" }},
      { "prayer_18": { "type": "image", "texture": "textures/ui/prayers/18" }},
      { "prayer_19": { "type": "image", "texture": "textures/ui/prayers/19" }},
      { "prayer_20": { "type": "image", "texture": "textures/ui/prayers/20" }},
      { "prayer_21": { "type": "image", "texture": "textures/ui/prayers/21" }},
      { "prayer_22": { "type": "image", "texture": "textures/ui/prayers/22" }},
      { "prayer_23": { "type": "image", "texture": "textures/ui/prayers/11" }},
      { "prayer_24": { "type": "image", "texture": "textures/ui/prayers/24" }},
      { "prayer_25": { "type": "image", "texture": "textures/ui/prayers/25" }},
      { "prayer_26": { "type": "image", "texture": "textures/ui/prayers/26" }},
      { "prayer_27": { "type": "image", "texture": "textures/ui/prayers/27" }},
      { "prayer_28": { "type": "image", "texture": "textures/ui/prayers/28" }},
      { "prayer_29": { "type": "image", "texture": "textures/ui/prayers/29" }},
      { "prayer_30": { "type": "image", "texture": "textures/ui/prayers/30" }},
      { "prayer_31": { "type": "image", "texture": "textures/ui/prayers/31" }},
      { "prayer_32": { "type": "image", "texture": "textures/ui/prayers/32" }},
      { "prayer_33": { "type": "image", "texture": "textures/ui/prayers/33" }},
      { "prayer_34": { "type": "image", "texture": "textures/ui/prayers/34" }},
      { "prayer_35": { "type": "image", "texture": "textures/ui/prayers/35" }},
      { "prayer_36": { "type": "image", "texture": "textures/ui/prayers/36" }},
      { "prayer_37": { "type": "image", "texture": "textures/ui/prayers/37" }},
      { "thieving_bar_0": { "type": "image", "texture": "textures/ui/thieving_bar0" }},
      { "thieving_bar_1": { "type": "image", "texture": "textures/ui/thieving_bar1" }},
      { "thieving_bar_2": { "type": "image", "texture": "textures/ui/thieving_bar2" }},
      { "craft_bg": { "type": "image", "texture": "textures/ui/craft_bg" }},
      { "craft_fg": { "type": "image", "texture": "textures/ui/craft_fg" }}
  ]}
}

repair.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: repair.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-repair",
  // ???/?? ??
  "element_modal": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$runeui:form_condition": "(not((#title_text - 'repair_amount.title') = #title_text))",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:form_condition",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "gradient@runeui-common.gradient_background": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 0.521, 0.541, 0.6, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 0.521, 0.541, 0.6, 0.7 ]
      }},
      { "modal@runeui-form.main_panel_no_buttons": {
          // 가로/세로 크기
          "size": [ 236, 200 ],
          // 오버라이드 가능한 변수
          "$title_text_color": [ 0.521, 0.541, 0.6 ],
          // 오버라이드 가능한 변수
          "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
          // 오버라이드 가능한 변수
          "$panel_indent_offset": [ 0, 23 ],
          // 오버라이드 가능한 변수
          "$custom_background": "runeui-repair.dialog_modal",
          // 오버라이드 가능한 변수
          "$rc_template": "runeui-repair.scrolling_panel_modal",
          // 오버라이드 가능한 변수
          "$rc_custom_background": "runeui-repair.background",
          // 오버라이드 가능한 변수
          "$rc_custom_background_size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
      }}
  ]},
  // ???/?? ??
  "element": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$runeui:form_condition": "(not((#title_text - 'repair.title') = #title_text))",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:form_condition",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "gradient@runeui-common.gradient_background": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 0.521, 0.541, 0.6, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 0.521, 0.541, 0.6, 0.7 ]
      }},
      { "form@runeui-form.main_panel_no_buttons": {
          // 가로/세로 크기
          "size": [ 236, 200 ],
          // 오버라이드 가능한 변수
          "$title_text_color": [ 0.521, 0.541, 0.6 ],
          // 오버라이드 가능한 변수
          "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
          // 오버라이드 가능한 변수
          "$panel_indent_offset": [ 0, 23 ],
          // 오버라이드 가능한 변수
          "$custom_background": "runeui-repair.dialog",
          // 오버라이드 가능한 변수
          "$rc_template": "runeui-repair.scrolling_panel",
          // 오버라이드 가능한 변수
          "$rc_custom_background": "runeui-repair.background",
          // 오버라이드 가능한 변수
          "$rc_custom_background_size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
      }}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "dialog@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-repair.dialog_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "dialog_modal@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-repair.dialog_modal_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "background@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-repair.background_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // ???/?? ??
  "background_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "background_gradient@runeui-common.gradient_background_black": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 0.521, 0.541, 0.6, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 0.521, 0.541, 0.6, 0.7 ]
      }},
      { "panel_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/form_body_background",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ?? (R,G,B,A)
          "color": "$title_text_color",
          // 이미지 반복 여부
          "tiled": true
      }}
  ]},
  // ???/?? ??
  "dialog_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "toolbar@runeui-form.form_style_toolbar": {
          // 오버라이드 가능한 변수
          "$rc_hover_word": "runeui.help.repairing"
      }},
      { "styler@runeui-form.form_style_main": {}},
      { "smithing@runeui-repair.smithing": {}},
      { "selected_tab@runeui-repair.selected_tab": {}}
  ]},
  // ???/?? ??
  "dialog_modal_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "toolbar@runeui-form.form_style_toolbar": {
          // 오버라이드 가능한 변수
          "$runeui:help_button": false
      }},
      { "styler@runeui-form.form_style_main": {}}
  ]},
  // ???/?? ??
  "selected_tab": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 118, 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -19 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "locked_button@common_buttons.light_text_button": {
          // ??/???
          "enabled": false,
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$button_text": "repair.title",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "",
          // 오버라이드 가능한 변수
          "$button_text_max_size": [ "100%", 20 ],
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_tab_front",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_tab_front_hover",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_tab_front_hover",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_tab_front",
          // 오버라이드 가능한 변수
          "$locked_text_color": [ 0.5, 0.5, 0.5 ]
      }},
      { "outline": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 겹치는 순서(숫자 클수록 위)
          "layer": -2,
          // ???
          "alpha": 0.5,
          // 가로/세로 크기
          "size": [ "100% + 2px", "100% - 1px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, -1.5 ],
          // ?? (R,G,B,A)
          "color": "$title_text_color",
          // 애니메이션 목록
          "anims": [ "@runeui-common.outline_fade_starter" ]
      }}
  ]},
  // ???/?? ??
  "smithing": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 가로/세로 크기
    "size": [ "50%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -16 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": -8,
    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "runeui-repair.smithing_core"
    },
    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
  }]},
  // 다른 템플릿을 가져와서 확장(상속)
  "smithing_core@common_buttons.light_text_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.form_button_click",
    // 오버라이드 가능한 변수
    "$button_text": "smith.title",
    // 오버라이드 가능한 변수
    "$button_text_max_size": [ "100%", 20 ],
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$border_visible": false,
    // 오버라이드 가능한 변수
    "$border_alpha": 0,
    // 오버라이드 가능한 변수
    "$button_image_fill": true,
    // 오버라이드 가능한 변수
    "$default_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$hover_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$pressed_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$locked_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$default_text_color": [ 0.85, 0.85, 0.85 ],
    // 오버라이드 가능한 변수
    "$hover_text_color": "$dark_button_hover_text_color",
    // 오버라이드 가능한 변수
    "$pressed_text_color": "$dark_button_pressed_text_color",
    // 오버라이드 가능한 변수
    "$locked_text_color": "$dark_button_locked_text_color",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, -1 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#form_button_text - 'repair.title') = #form_button_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
    }]
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel@runeui-form.long_form_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-repair.scrolling_content"
  },
  // ??? ??
  "scrolling_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding_00": { "type": "panel", "size": [ "100%", 3 ]}},
      { "label_offset_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "main_label": {
                // 글자 표시
                "type": "label",
                // 기준점에서 이동하는 거리
                "offset": [ 2, 0 ],
                // 가로/세로 크기
                "size": [ "100% - 6px", "default" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // ?? ??
                "shadow": true,
                // 보여줄 글자
                "text": "#form_text",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_name": "#form_text" },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (#form_text = ''))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "background": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "100% + 6px", "100% + 6px" ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": -1,
                      // ?? ??
                      "clip_pixelperfect": true,
                      // 기준점에서 이동하는 거리
                      "offset": [ -2, 0 ],
                      // 사용할 이미지 경로
                      "texture": "textures/ui/solid_textbox"
                  }}
            ]}}
      ]}},
      { "padding": { "type": "panel", "size": [ "100%", 10 ]}},
      { "wrapping_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100% - 12px", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "element@runeui-form.element_factory": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 30,
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // 오버라이드 가능한 변수
                "$runeui:panel_control": "runeui-repair.grid_button_panel_padding",
                // 오버라이드 가능한 변수
                "$runeui:condition": "$runeui:form_condition"
            }}
      ]}}
  ]},
  // ???/?? ??
  "grid_button_panel_padding": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // ??? ?? ?
    "grid_item_template": "runeui-repair.grid_button_core",
		// ??? ?? ?
		"grid_rescaling_type": "horizontal",
		// 목록 이름
		"collection_name": "form_buttons",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{	"binding_name": "#form_button_length" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#form_button_length - 1)",
        // 결과가 들어갈 속성
        "target_property_name": "#maximum_grid_items"
      }
	]},
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel_modal@runeui-form.custom_form_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-repair.scrolling_modal"
  },
  // ???/?? ??
  "scrolling_modal": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding": { "type": "panel", "size": [ "100%", 3 ]}},
      { "generated_form@runeui-form.generated_contents": {}},
      { "submit_button@common_buttons.light_text_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.submit_custom_form",
          // 가로/세로 크기
          "size": [ "100% - 8px", 32 ],
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$default_text_color": [ 0.85, 0.85, 0.85 ],
          // 오버라이드 가능한 변수
          "$hover_text_color": "$dark_button_hover_text_color",
          // 오버라이드 가능한 변수
          "$pressed_text_color": "$dark_button_pressed_text_color",
          // 오버라이드 가능한 변수
          "$locked_text_color": "$dark_button_locked_text_color",
          // 오버라이드 가능한 변수
          "$button_text": "Repair!",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "#submit_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
          }]
      }}
  ]},
  // ???/?? ??
  "durability_temp": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // 가로/세로 크기
    "size": [ "100%", 2 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 4,
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_left",
    // ?? (R,G,B,A)
    "color": "$color",
    // 오버라이드 가능한 변수
    "$clip_max": 100.0,
    // 오버라이드 가능한 변수
    "$color|default": "$experience_text_color",
    // 오버라이드 가능한 변수
    "$max|default": 100,
    // 오버라이드 가능한 변수
    "$min|default": 80,
    // 오버라이드 가능한 변수
    "$string_pos|default": "%.2s",
    // 이 컨트롤 안에서 쓰는 임시 저장소
    "property_bag": {
      // ???/??? ?
      "#size_binding_x": 0.0
    },
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#form_button_text - ($string_pos * #form_button_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#size_progress"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#size_progress > $min - 1) and (#size_progress < $max) and (not (#size_progress = 100)))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#size_progress / $clip_max)",
        // 결과가 들어갈 속성
        "target_property_name": "#size_binding_x"
    }]
  },
  // ???/?? ??
  "gradient_temp": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이미지 표시
    "type": "image",
		// 사용할 이미지 경로
		"texture": "textures/ui/glint",
		// ???? ??
		"uv_size": [64, 64],
		// ???? ?? ??
		"uv": "@runeui-repair.image_uv_animation"
  },
   // ???/?? ??
   "outline_temp": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이미지 표시
    "type": "image",
		// 사용할 이미지 경로
		"texture": "textures/ui/outline",
		// ???? ??
		"uv_size": [64, 64],
		// ???? ?? ??
		"uv": "@runeui-repair.image_uv_animation"
  },
	// ???/?? ??
	"image_uv_animation": {
		// Aseprite 프레임 애니메이션
		"anim_type": "aseprite_flip_book",
		// ?? ??
		"initial_uv": [0, 0]
	},
  // ???/?? ??
  "grid_button_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 34, 34 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings":[
      { "binding_name": "#form_button_texture",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#texture = '') or (#texture = 'loading')))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 32, 32 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "image": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 가로/세로 크기
                "size": [ "100% - 2px", "100% - 2px" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings":[
                  { "binding_name": "#form_button_texture",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                  },
                  { "binding_name": "#form_button_texture_file_system",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture_file_system",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not ((#texture = '') or (#texture = 'loading')))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "enchantment": {
                      // 데이터 목록을 반복 배치
                      "type": "collection_panel",
                      // 목록 아이템을 자동으로 생성
                      "factory": { "name": "void", "control_name": "runeui-salvaging.gradient_temp", "max_children_size": 1 },
                      // 오버라이드 가능한 변수
                      "$rc_gradient_color1": [ 1.0, 0.333, 1.0, 0 ],
                      // 오버라이드 가능한 변수
                      "$rc_gradient_color2": [ 1.0, 0.333, 1.0, 0.7 ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        { "binding_name": "#form_button_text",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "form_buttons"
                        },
                        { "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#form_button_text - ('%.6s' * #form_button_text) * 1)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#collection_length"
                      }]
                  }},
                  { "durability_bg": {
                      // 이미지 표시
                      "type": "image",
                      // 사용할 이미지 경로
                      "texture": "textures/ui/Black",
                      // 가로/세로 크기
                      "size": [ "100%", 2 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 3,
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_left",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        { "binding_name": "#form_button_text",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "form_buttons"
                        },
                        { "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#form_button_text - ('%.2s' * #form_button_text) * 1)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#size_progress"
                        },
                        { "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(not (#size_progress = 100))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                      }]
                  }},
                  { "durability_green@durability_temp": {}},
                  { "durability_yellow@durability_temp": {
                      // 오버라이드 가능한 변수
                      "$color": [ 0.9254, 0.9137, 0.1843 ],
                      // 오버라이드 가능한 변수
                      "$max": 80,
                      // 오버라이드 가능한 변수
                      "$min": 60
                  }},
                  { "durability_orange@durability_temp": {
                      // 오버라이드 가능한 변수
                      "$color": [ 0.9254, 0.6705, 0.1843 ],
                      // 오버라이드 가능한 변수
                      "$max": 60,
                      // 오버라이드 가능한 변수
                      "$min": 30
                  }},
                  { "durability_red@durability_temp": {
                      // 오버라이드 가능한 변수
                      "$color": [ 0.9254, 0.2941, 0.1843 ],
                      // 오버라이드 가능한 변수
                      "$max": 30,
                      // 오버라이드 가능한 변수
                      "$min": 0
                  }}
            ]}},
            { "outline": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 사용할 이미지 경로
                "texture": "textures/ui/Black",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "selected": {
                      // 데이터 목록을 반복 배치
                      "type": "collection_panel",
                      // 목록 아이템을 자동으로 생성
                      "factory": { "name": "void", "control_name": "runeui-salvaging.outline_temp", "max_children_size": 1 },
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        { "binding_name": "#form_button_text",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "form_buttons"
                        },
                        { "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#form_button_text - ('%.8s' * #form_button_text) * 1)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#check"
                        },
                        { "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#check = 1)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#condition"
                        },
                        { "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#condition * 1)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#collection_length"
                      }]
                  }}]
            }},
            { "button@common_buttons.light_text_button": {
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.form_button_click",
                // 오버라이드 가능한 변수
                "$button_text": "#null",
                // 오버라이드 가능한 변수
                "$button_text_binding_type": "collection",
                // 오버라이드 가능한 변수
                "$button_text_grid_collection_name": "form_buttons",
                // 오버라이드 가능한 변수
                "$button_text_max_size": [ "100%", 20 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_type": "collection_details",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                }],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "hover": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        { "outline": {
                            // 이미지 표시
                            "type": "image",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1,
                            // 사용할 이미지 경로
                            "texture": "textures/ui/White"
                        }},
                        { "text_hover": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 가로/세로 크기
                            "size": [	"100%c", "100%c" ],
                            // ?? ??
                            "follows_cursor": true,
                            // ?? ??
                            "always_handle_pointer": true,
                            // ?? ??
                            "always_listen_to_input": true,
                            // ??? ?? ?
                            "allow_clipping": false,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 120,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              { "label_core": {
                                  // 글자 표시
                                  "type": "label",
                                  // 보여줄 글자
                                  "text": "#text",
                                  // ?? ??
                                  "shadow": true,
                                  // 기준점에서 이동하는 거리
                                  "offset": [ "60%", 0 ],
                                  // ?? ?? ?
                                  "max_size": [ 220, "default" ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    { "binding_name": "#form_button_text",
                                      // 목록 데이터를 반복 연결
                                      "binding_type": "collection",
                                      // 목록 이름
                                      "binding_collection_name": "form_buttons"
                                    },
                                    { "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "('§z' + (#form_button_text - (%.10s * #form_button_text)))",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#text"
                                  }],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    { "background": {
                                        // 이미지 표시
                                        "type": "image",
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": -10,
                                        // 가로/세로 크기
                                        "size": [ "100% + 9px", "100% + 6px" ],
                                        // 사용할 이미지 경로
                                        "texture": "textures/ui/general_textbox"
                                    }},
                                    { "shadow": {
                                        // 이미지 표시
                                        "type": "image",
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": -11,
                                        // ???
                                        "alpha": 0.5,
                                        // 가로/세로 크기
                                        "size": [ "100% + 9px", "100% + 6px" ],
                                        // 사용할 이미지 경로
                                        "texture": "textures/ui/hud_tip_text_background",
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 2, 2 ]
                                    }}
                              ]}}
                        ]}}
                  ]}}
            ]}}
      ]}}
  ]}
}

runecraft_form.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: runecraft_form.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-form",
  // ???/?? ??
  "custom_form": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$child_control": "runeui-form.long_form_panel_rewrite",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "bg@runeui-common.background": {}},
      { "brewing@runeui-brewing_table.element_modal": {}},
      { "noting@runeui-noting_amount.element_modal": {}},
      { "repair@runeui-repair.element_modal": {}},
      { "smelting@runeui-smelting.element_modal": {}},
      { "smithing@runeui-smithing.element_modal": {}}
  ]},
  // ???/?? ??
  "long_form": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$child_control": "runeui-form.long_form_panel_rewrite",
    // 오버라이드 가능한 변수
    "$show_close_button": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "bg@runeui-common.background": {}},
      { "brewing@runeui-brewing_table.element": {}},
      { "noting@runeui-noting.element": {}},
      { "unnoting@runeui-unnoting.element": {}},
      { "prayer@runeui-prayer.element": {}},
      { "smelting@runeui-smelting.element": {}},
      { "salvaging@runeui-salvaging.element": {}},
      { "fletching@runeui-fletching_table.element": {}},
      { "fuel_selection@runeui-fuel_selection.element": {}},
      { "smithing@runeui-smithing.element": {}},
      { "repair@runeui-repair.element": {}}
  ]},
  // ???/?? ??
  "main_panel_no_buttons": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 기준점(어디에서 시작할지)
    "anchor_from": "center",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "center",
    // 오버라이드 가능한 변수
    "$text_name|default": "",
    // 오버라이드 가능한 변수
    "$panel_indent_size|default": [ "100% - 16px", "100% - 31px" ],
    // 오버라이드 가능한 변수
    "$panel_indent_offset|default": [ 0, 23 ],
    // 오버라이드 가능한 변수
    "$custom_background|default": "dialog_background_hollow_3",
    // 오버라이드 가능한 변수
    "$title_offset|default": [ 0, 9 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "common_panel@runeui-form.common_panel": { "$dialog_background": "$custom_background" }},
      { "title_label@runeui-common.standard_title_label": {}},
      { "panel_indent": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": "$panel_indent_size",
          // 기준점에서 이동하는 거리
          "offset": "$panel_indent_offset",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "inside_header_panel@$child_control": {} }
      ]}}
  ]},
  // ???/?? ??
  "common_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$dialog_background|default": "common.dialog_background_opaque",
    // 오버라이드 가능한 변수
    "$show_close_button|default": true,
    // 오버라이드 가능한 변수
    "$close_button_visible_binding_name|default": "#close_button_visible",
    // 오버라이드 가능한 변수
    "$close_button_offset|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$close_button_layer|default": 2,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "bg_image@$dialog_background": {
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1
      }},
      { "close@runeui-common.close_button": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $show_close_button)",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "$close_button_visible_binding_name",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
          }]
      }}
  ]},
  // ???/?? ??
  "long_form_panel_rewrite": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 오버라이드 가능한 변수
    "$rc_template|default": "runeui-form.long_form_scrolling_panel",
    // 오버라이드 가능한 변수
    "$rc_custom_background|default": "common.empty_panel",
    // 오버라이드 가능한 변수
    "$rc_custom_background_size|default": [ "100%", "100%" ],
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "template@$rc_template": {}},
      { "custom_background@$rc_custom_background": {
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_left",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_left",
          // 가로/세로 크기
          "size": "$rc_custom_background_size"
      }}
  ]},
  // ???/?? ??
  "scrolling_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$scrolling_pane_size|default": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$scrolling_pane_offset|default": [ 0, 0 ],

    // 오버라이드 가능한 변수
    "$scroll_view_control_size|default": [ "100%", "100%" ],

    // 오버라이드 가능한 변수
    "$background_size|default": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$background_offset|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_view_port_size|default": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$scroll_view_port_max_size|default": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$scroll_view_port_offset|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_left_padding_size|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_right_padding_size|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$view_port_size|default": [ "fill", "100%" ],
    // 오버라이드 가능한 변수
    "$scroll_bar_contained|default": true,
    // 오버라이드 가능한 변수
    "$scroll_size|default": [ 4, "100%" ],
    // 오버라이드 가능한 변수
    "$scroll_box_size|default": [ "100%", "100%" ],

    // 오버라이드 가능한 변수
    "$allow_scrolling_even_when_content_fits|default": true,

    // 오버라이드 가능한 변수
    "$scroll_box_visible|default": true,
    // 오버라이드 가능한 변수
    "$use_touch_mode|default": false,
    // 오버라이드 가능한 변수
    "$show_background|default": false,
    // 이 안에 들어가는 부품 목록
    "controls": [
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "scroll_mouse@common.scrolling_panel_base": {
          // 가로/세로 크기
          "size": "$scrolling_pane_size",
          // 기준점에서 이동하는 거리
          "offset": "$scrolling_pane_offset"
        }
      }
    ]
  },
  // ???/?? ??
  "container_scroll_background_image": {
    // 이미지 표시
    "type": "image",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 2,
    // 사용할 이미지 경로
    "texture": "textures/ui/form_scrolling_pane_bg",
    // ??? ?? ?
    "allow_clipping": false
  },
  // ???/?? ??
  "container_scroll_box_image": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/form_scrolling_box",
    // ??? ?? ?
    "allow_clipping": false
  },
  // ???/?? ??
  "container_scrollbar_track": {
    // 이미지 표시
    "type": "image",
    // 겹치는 순서(숫자 클수록 위)
    "layer": 1,
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점에서 이동하는 거리
    "offset": [ -2, 0 ],
    // ??? ?? ?
    "allow_clipping": false,
    // 가로/세로 크기
    "size": [ "100% + 4px", "100%" ],
    // 사용할 이미지 경로
    "texture": "textures/ui/form_scrolling_box_bg"
  },

  // 다른 템플릿을 가져와서 확장(상속)
  "long_form_scrolling_panel@runeui-form.scrolling_panel": {
    // 겹치는 순서(숫자 클수록 위)
    "layer": 50,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 오버라이드 가능한 변수
    "$show_background": false,
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    //"debug": "red",
    "$scrolling_pane_offset|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scrolling_pane_size|default": [ "100% + 0.5px", "100%" ],
    // 오버라이드 가능한 변수
    "$scroll_view_port_size|default": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$scroll_view_port_offset|default": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_size|default": [ 8, "100%" ],

    // Enable element inside the scrolling bar if we want a static instead of dynamic.
    "$scroll_bar_contained|default": false,

    // 오버라이드 가능한 변수
    "$scroll_bar_right_padding_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_left_padding_size": [ 1, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "runeui-form.container_scroll_background_image",
    // 오버라이드 가능한 변수
    "$scroll_track_image_control": "runeui-form.container_scrollbar_track",
    // 오버라이드 가능한 변수
    "$scroll_box_mouse_image_control": "runeui-form.container_scroll_box_image",
    // 오버라이드 가능한 변수
    "$scroll_box_touch_image_control": "runeui-form.container_scroll_box_image",
    // 오버라이드 가능한 변수
    "$allow_scrolling_even_when_content_fits": false,

    // 오버라이드 가능한 변수
    "$scrolling_content": "server_form.long_form_scrolling_content"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "custom_form_panel@runeui-form.scrolling_panel": {
    // 겹치는 순서(숫자 클수록 위)
    "layer": 50,
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 오버라이드 가능한 변수
    "$show_background": false,
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$scrolling_pane_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scrolling_pane_size": [ "100% + 0.5px", "100%" ],
    // 오버라이드 가능한 변수
    "$scroll_view_port_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$scroll_view_port_offset": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_size": [ 8, "100%" ],

    // 오버라이드 가능한 변수
    "$scroll_bar_right_padding_size": [ 0, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_bar_left_padding_size": [ 1, 0 ],
    // 오버라이드 가능한 변수
    "$scroll_background_image_control": "runeui-form.container_scroll_background_image",
    // 오버라이드 가능한 변수
    "$scroll_track_image_control": "runeui-form.container_scrollbar_track",
    // 오버라이드 가능한 변수
    "$scroll_box_mouse_image_control": "runeui-form.container_scroll_box_image",
    // 오버라이드 가능한 변수
    "$scroll_box_touch_image_control": "runeui-form.container_scroll_box_image",
    // 오버라이드 가능한 변수
    "$allow_scrolling_even_when_content_fits": false,

    // 오버라이드 가능한 변수
    "$scrolling_content": "server_form.custom_form_scrolling_content"
  },
  // ???/?? ??
  "generated_contents": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100% - 10px", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // ?? ??
    "use_child_anchors": true,
    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // 팩토리 템플릿 매핑
      "control_ids": {
        // ?? ??
        "label": "@server_form.custom_label",
        // ?? ??
        "toggle": "@server_form.custom_toggle",
        // ?? ??
        "slider": "@server_form.custom_slider",
        // ?? ??
        "step_slider": "@server_form.custom_step_slider",
        // ?? ??
        "dropdown": "@server_form.custom_dropdown",
        // ?? ??
        "input": "@runeui-form.custom_input",
        // ?? ??
        "header": "@server_form.custom_header"
    }},
    // 목록 이름
    "collection_name": "custom_form",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#custom_form_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
      }
  ]},
  // ???/?? ??
  "custom_input": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100% + 10px", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "main_label": {
                // 글자 표시
                "type": "label",
                // 기준점에서 이동하는 거리
                "offset": [ 2, 0 ],
                // 가로/세로 크기
                "size": [ "100% - 6px", "default" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // ?? ??
                "shadow": true,
                // 보여줄 글자
                "text": "#custom_text",
                // 게임 값과 연결하는 규칙 목록
                "bindings":[
                  { "binding_name": "#custom_text",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "custom_form"
                }],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "background": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "100% + 6px", "100% + 6px" ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": -1,
                      // 기준점에서 이동하는 거리
                      "offset": [ -2, 0 ],
                      // 사용할 이미지 경로
                      "texture": "textures/ui/solid_textbox"
                  }}
            ]}}
      ]}},
      { "padding": { "type": "panel", "size": [ 6, 6 ]}}
  ]},
  // ???/?? ??
  "element_factory": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 오버라이드 가능한 변수
    "$runeui:binding_name|default": "#title_text",
    // 오버라이드 가능한 변수
    "$runeui:panel_control|default": "",
    // 오버라이드 가능한 변수
    "$runeui:condition|default": "",
    // 목록 아이템을 자동으로 생성
    "factory": { "name": "void", "control_name": "$runeui:panel_control", "max_children_size": 1 },
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "$runeui:binding_name" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:condition",
        // 결과가 들어갈 속성
        "target_property_name": "#renderer_state"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#renderer_state * 1)",
        // 결과가 들어갈 속성
        "target_property_name": "#collection_length"
    }]
  },
  // ???/?? ??
  "form_style_main": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "form_shadow": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/Black",
          // 겹치는 순서(숫자 클수록 위)
          "layer": -2,
          // ???
          "alpha": 0.25,
          // 기준점에서 이동하는 거리
          "offset": [ 2, 2 ]
      }},
      { "outline": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 겹치는 순서(숫자 클수록 위)
          "layer": -2,
          // ???
          "alpha": 0.5,
          // 가로/세로 크기
          "size": [ "100% + 2px", "100% + 2px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ],
          // ?? (R,G,B,A)
          "color": "$title_text_color",
          // 애니메이션 목록
          "anims": [ "@runeui-common.outline_fade_starter" ]
      }},
      { "form_border": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/general_form",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 30
      }},
      { "form_divider": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/general_form",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 35,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 19 ],
          // 가로/세로 크기
          "size": [ "100%", 4 ]
      }},
      { "background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/general_form_background",
          // 겹치는 순서(숫자 클수록 위)
          "layer": -2,
          // 이미지 반복 여부
          "tiled": true
      }}
  ]},
  // ???/?? ??
  "form_style_toolbar": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$rc_hover_word|default": "Placeholder.",
    // 오버라이드 가능한 변수
    "$runeui:custom_toolbar|default": false,
    // 오버라이드 가능한 변수
    "$runeui:custom_toolbar_content|default": "",
    // 오버라이드 가능한 변수
    "$runeui:help_button|default": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "exit@runeui-common.off_dialog": {
          // 오버라이드 가능한 변수
          "$rc_offdialog_content": "runeui-common.close_button"
      }},
      { "help@runeui-common.off_dialog": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $runeui:help_button)",
          // 오버라이드 가능한 변수
          "$rc_offdialog_offset": [ -19, 3 ],
          // 오버라이드 가능한 변수
          "$rc_offdialog_content": "runeui-common.help_button"
      }},
      { "extra@$runeui:custom_toolbar_content": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not $runeui:custom_toolbar)"
      }}
    ]
  }
}

salvaging.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: salvaging.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-salvaging",
  // ???/?? ??
  "element": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$runeui:form_condition": "(not((#title_text - 'salvage.title') = #title_text))",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:form_condition",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "gradient@runeui-common.gradient_background": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 1.000, 0.333, 0.000, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 1.000, 0.333, 0.000, 0.7 ]
      }},
      { "form_stacking": {
          // 줄맞춤 컨테이너: 가로/세로로 자동 배치
          "type": "stack_panel",
          // 쌓는 방향(가로/세로)
          "orientation": "horizontal",
          // 가로/세로 크기
          "size": [ "100%c", "100%cm" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "form@runeui-form.main_panel_no_buttons": {
                // 가로/세로 크기
                "size": [ 236, 200 ],
                // 오버라이드 가능한 변수
                "$title_text_color": [ 1.000, 0.333, 0.000 ],
                // 오버라이드 가능한 변수
                "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
                // 오버라이드 가능한 변수
                "$panel_indent_offset": [ 0, 23 ],
                // 오버라이드 가능한 변수
                "$pos": "%.7s",
                // 오버라이드 가능한 변수
                "$title_alignment": "left",
                // 오버라이드 가능한 변수
                "$custom_background": "runeui-salvaging.dialog",
                // 오버라이드 가능한 변수
                "$rc_template": "runeui-salvaging.scrolling_panel",
                // 오버라이드 가능한 변수
                "$rc_custom_background": "runeui-salvaging.background",
                // 오버라이드 가능한 변수
                "$rc_custom_background_size": [ "100%", "100%" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4
            }},
            { "padding": {
                // 패널: 다른 부품을 담는 바닥판
                "type": "panel",
                // 가로/세로 크기
                "size": [ 4, 4 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_name": "#form_text" },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not((#form_text - 'salvage.yield') = #form_text))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }]
            }},
            { "selected@runeui-form.main_panel_no_buttons": {
                // 가로/세로 크기
                "size": [ 150, 165 ],
                // 오버라이드 가능한 변수
                "$title_text_color": [ 1.000, 0.333, 0.000 ],
                // 오버라이드 가능한 변수
                "$title_text": "Selected",
                // 오버라이드 가능한 변수
                "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
                // 오버라이드 가능한 변수
                "$panel_indent_offset": [ 0, 23 ],
                // 오버라이드 가능한 변수
                "$custom_background": "runeui-salvaging.dialog_selected",
                // 오버라이드 가능한 변수
                "$rc_template": "runeui-salvaging.scrolling_panel_selected",
                // 오버라이드 가능한 변수
                "$rc_custom_background": "runeui-salvaging.background_selected",
                // 오버라이드 가능한 변수
                "$rc_custom_background_size": [ "100%", "100%" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 4,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_name": "#form_text" },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not((#form_text - 'salvage.yield') = #form_text))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }]
            }}
      ]}}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "dialog@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-salvaging.dialog_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "background@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-salvaging.background_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "dialog_selected@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-salvaging.dialog_selected_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "background_selected@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-salvaging.background_selected_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // ???/?? ??
  "background_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "background_gradient@runeui-common.gradient_background_black": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 1.000, 0.333, 0.000, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 1.000, 0.333, 0.000, 0.7 ]
      }},
      { "panel_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/form_body_background",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ?? (R,G,B,A)
          "color": "$title_text_color",
          // 이미지 반복 여부
          "tiled": true
      }}
  ]},
  // ???/?? ??
  "dialog_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "toolbar@runeui-form.form_style_toolbar": {
          // 오버라이드 가능한 변수
          "$rc_hover_word": "runeui.help.salvaging"
      }},
      { "styler@runeui-form.form_style_main": {}},
      { "debug_text": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "#output",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4,
          // ?? ??
          "shadow": true,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 기준점에서 이동하는 거리
          "offset": [ -54, 6 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "#title_text" },
            { "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(('§z') + (#title_text - ('%.3s' * #title_text)))",
              // 결과가 들어갈 속성
              "target_property_name": "#output"
          }]
      }},
      { "fuel_icon": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/blocks/runecraft_furnace_active",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 기준점에서 이동하는 거리
          "offset": [ -38, 4.5 ],
          // 가로/세로 크기
          "size": [ 12, 12 ]
      }},
      { "smelting_button@runeui-salvaging.smelting_button": {}},
      { "fuel_selection@runeui-salvaging.fuel_selection": {}},
      { "selected_tab@runeui-salvaging.selected_tab": {}},
      { "button_is_empty@runeui-salvaging.button_is_empty_core": {}}
  ]},
  // ???/?? ??
  "dialog_selected_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "styler@runeui-form.form_style_main": {}},
      { "salvage_button@runeui-salvaging.salvaging_button": {}}
  ]},
  // ???/?? ??
  "background_selected_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "background": {
          // 이미지 표시
          "type": "image",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // 사용할 이미지 경로
          "texture": "textures/ui/solid_textbox"
      }}
  ]},
  // ???/?? ??
  "selected_tab": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "33.333%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -19 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "locked_button@common_buttons.light_text_button": {
          // ??/???
          "enabled": false,
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$button_text": "salvage.title",
          // 오버라이드 가능한 변수
          "$button_text_max_size": [ "100%", 20 ],
          // 오버라이드 가능한 변수
          "$pressed_button_name": "",
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_tab_front",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_tab_front_hover",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_tab_front_hover",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_tab_front",
          // 오버라이드 가능한 변수
          "$locked_text_color": [ 0.5, 0.5, 0.5 ]
      }},
      { "outline": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 겹치는 순서(숫자 클수록 위)
          "layer": -2,
          // ???
          "alpha": 0.5,
          // 가로/세로 크기
          "size": [ "100% + 2px", "100% - 1px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, -1.5 ],
          // ?? (R,G,B,A)
          "color": "$title_text_color",
          // 애니메이션 목록
          "anims": [ "@runeui-common.outline_fade_starter" ]
      }}
  ]},
  // ???/?? ??
  "fuel_selection": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 가로/세로 크기
    "size": [ "33.333%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -16 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": -8,
    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "runeui-salvaging.fuel_selection_core"
    },
    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
  }]},
  // 다른 템플릿을 가져와서 확장(상속)
  "fuel_selection_core@common_buttons.light_text_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.form_button_click",
    // 오버라이드 가능한 변수
    "$button_text": "fuel.title",
    // "$button_text_binding_type": "collection",
    // "$button_text_grid_collection_name": "form_buttons",
    "$button_text_max_size": [ "100%", 20 ],
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$border_visible": false,
    // 오버라이드 가능한 변수
    "$border_alpha": 0,
    // 오버라이드 가능한 변수
    "$button_image_fill": true,
    // 오버라이드 가능한 변수
    "$default_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$hover_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$pressed_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$locked_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$default_text_color": [ 0.85, 0.85, 0.85 ],
    // 오버라이드 가능한 변수
    "$hover_text_color": "$dark_button_hover_text_color",
    // 오버라이드 가능한 변수
    "$pressed_text_color": "$dark_button_pressed_text_color",
    // 오버라이드 가능한 변수
    "$locked_text_color": "$dark_button_locked_text_color",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, -1 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#form_button_text - 'fuel.title') = #form_button_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
    }]
  },
  // ???/?? ??
  "smelting_button": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 가로/세로 크기
    "size": [ "33.333%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -16 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": -8,
    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "runeui-salvaging.smelting_button_core"
    },
    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
  }]},
  // 다른 템플릿을 가져와서 확장(상속)
  "smelting_button_core@common_buttons.light_text_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.form_button_click",
    // 오버라이드 가능한 변수
    "$button_text": "smelting.title",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$border_visible": false,
    // 오버라이드 가능한 변수
    "$border_alpha": 0,
    // 오버라이드 가능한 변수
    "$button_image_fill": true,
    // 오버라이드 가능한 변수
    "$default_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$hover_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$pressed_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$locked_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$default_text_color": [ 0.85, 0.85, 0.85 ],
    // 오버라이드 가능한 변수
    "$hover_text_color": "$dark_button_hover_text_color",
    // 오버라이드 가능한 변수
    "$pressed_text_color": "$dark_button_pressed_text_color",
    // 오버라이드 가능한 변수
    "$locked_text_color": "$dark_button_locked_text_color",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, -1 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#form_button_text - 'smelting.title') = #form_button_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
    }]
  },
  // ???/?? ??
  "salvaging_button": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 가로/세로 크기
    "size": [ "100%", 30 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, 34 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 100,
    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "runeui-salvaging.salvaging_button_core"
    },
    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
  }]},
  // 다른 템플릿을 가져와서 확장(상속)
  "salvaging_button_core@common_buttons.light_text_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.form_button_click",
    // 오버라이드 가능한 변수
    "$button_text": "salvage.title",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$border_visible": false,
    // 오버라이드 가능한 변수
    "$border_alpha": 0,
    // 오버라이드 가능한 변수
    "$button_image_fill": true,
    // 오버라이드 가능한 변수
    "$default_button_texture": "textures/ui/form_button",
    // 오버라이드 가능한 변수
    "$hover_button_texture": "textures/ui/form_button_pressed",
    // 오버라이드 가능한 변수
    "$pressed_button_texture": "textures/ui/form_button_pressed",
    // 오버라이드 가능한 변수
    "$locked_button_texture": "textures/ui/form_button",
    // 오버라이드 가능한 변수
    "$default_text_color": [ 0.85, 0.85, 0.85 ],
    // 오버라이드 가능한 변수
    "$hover_text_color": "$dark_button_hover_text_color",
    // 오버라이드 가능한 변수
    "$pressed_text_color": "$dark_button_pressed_text_color",
    // 오버라이드 가능한 변수
    "$locked_text_color": "$dark_button_locked_text_color",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, 0 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#form_button_text - 'salvage.title') = #form_button_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
    }]
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel@runeui-form.long_form_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-salvaging.scrolling_content"
  },
  // ??? ??
  "scrolling_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding_00": { "type": "panel", "size": [ "100%", 3 ]}},
      { "label_offset_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "main_label": {
                // 글자 표시
                "type": "label",
                // 기준점에서 이동하는 거리
                "offset": [ 2, 0 ],
                // 가로/세로 크기
                "size": [ "100% - 6px", "default" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // ?? ??
                "shadow": true,
                // 보여줄 글자
                "text": "#text",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_name": "#form_text" },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "('§z' + #form_text)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#output"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#search + 1 * (not (('%.'+#search+'s') * #output = #output)) and (('%.'+#search+'s') * #output = ('%.'+#search+'s') * #output - ';')))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#search"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "((('%.'+#search+'s') * #output) - ';')",
                    // 결과가 들어갈 속성
                    "target_property_name": "#text"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (#text = ''))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "background": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "100% + 20px", "100% + 6px" ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": -1,
                      // ?? ??
                      "clip_pixelperfect": true,
                      // 기준점에서 이동하는 거리
                      "offset": [ -2, 0 ],
                      // 사용할 이미지 경로
                      "texture": "textures/ui/solid_textbox"
                  }}
            ]}}
      ]}},
      { "padding": { "type": "panel", "size": [ "100%", 10 ]}},
      { "wrapping_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100% - 12px", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "element@runeui-form.element_factory": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 30,
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // 오버라이드 가능한 변수
                "$runeui:panel_control": "runeui-salvaging.grid_button_panel_padding",
                // 오버라이드 가능한 변수
                "$runeui:condition": "$runeui:form_condition"
            }}
      ]}}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel_selected@runeui-form.long_form_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-salvaging.scrolling_content_selected"
  },
  // ???/?? ??
  "scrolling_content_selected": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding_00": { "type": "panel", "size": [ "100%", 3 ]}},
      { "label_offset_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "main_label": {
                // 글자 표시
                "type": "label",
                // 기준점에서 이동하는 거리
                "offset": [ 2, 0 ],
                // 가로/세로 크기
                "size": [ "100% - 6px", "default" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // ?? ??
                "shadow": true,
                // 보여줄 글자
                "text": "#text",
                // ?? ?? ??
                "font_scale_factor": 0.75,
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_name": "#form_text" },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "('§z' + #form_text)",
                    // 결과가 들어갈 속성
                    "target_property_name": "#output"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#search + 1 * (not (('%.'+#search+'s') * #output = #output)) and (('%.'+#search+'s') * #output = ('%.'+#search+'s') * #output - ';')))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#search"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(#output - ( ('%.'+#search+'s') * #output))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#text"
                }]
            }}
      ]}},
      { "padding_00": { "type": "panel", "size": [ "100%", 6 ]}}
  ]},
  // ???/?? ??
  "grid_button_panel_padding": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // ??? ?? ?
    "grid_item_template": "runeui-salvaging.grid_button_core",
		// ??? ?? ?
		"grid_rescaling_type": "horizontal",
		// 목록 이름
		"collection_name": "form_buttons",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{	"binding_name": "#form_button_length" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#form_button_length - 3)",
        // 결과가 들어갈 속성
        "target_property_name": "#maximum_grid_items"
      }
	]},
  // ???/?? ??
  "button_is_empty_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      {	"binding_name": "#form_button_length" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not(#form_button_length > 3))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "mask_8": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "Nothing to salvage...",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 200,
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "background": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": -10,
                // ???
                "alpha": 0.75,
                // 가로/세로 크기
                "size": [ "100% + 8px", "100% + 8px" ],
                // 사용할 이미지 경로
                "texture": "textures/ui/hud_tip_text_background"
            }}
      ]}}
  ]},
  // ???/?? ??
  "durability_temp": {
    // 이미지 표시
    "type": "image",
    // 사용할 이미지 경로
    "texture": "textures/ui/White",
    // 가로/세로 크기
    "size": [ "100%", 2 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 4,
    // 기준점(어디에서 시작할지)
    "anchor_from": "bottom_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "bottom_left",
    // ?? (R,G,B,A)
    "color": "$color",
    // 오버라이드 가능한 변수
    "$clip_max": 100.0,
    // 오버라이드 가능한 변수
    "$color|default": "$experience_text_color",
    // 오버라이드 가능한 변수
    "$max|default": 100,
    // 오버라이드 가능한 변수
    "$min|default": 80,
    // 오버라이드 가능한 변수
    "$string_pos|default": "%.2s",
    // 이 컨트롤 안에서 쓰는 임시 저장소
    "property_bag": {
      // ???/??? ?
      "#size_binding_x": 0.0
    },
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#form_button_text - ($string_pos * #form_button_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#size_progress"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#size_progress > $min - 1) and (#size_progress < $max) and (not (#size_progress = 100)))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#size_progress / $clip_max)",
        // 결과가 들어갈 속성
        "target_property_name": "#size_binding_x"
    }]
  },
  // ???/?? ??
  "gradient_temp": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이미지 표시
    "type": "image",
		// 사용할 이미지 경로
		"texture": "textures/ui/glint",
		// ???? ??
		"uv_size": [ 64, 64 ],
		// ???? ?? ??
		"uv": "@runeui-salvaging.image_uv_animation"
  },
   // ???/?? ??
   "outline_temp": {
    // 가로/세로 크기
    "size": [ "100% + 2px", "100% + 2px" ],
    // 이미지 표시
    "type": "image",
		// 사용할 이미지 경로
		"texture": "textures/ui/outline",
		// ???? ??
		"uv_size": [ 64, 64 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": -5,
		// ???? ?? ??
		"uv": "@runeui-salvaging.image_uv_animation"
  },
	// ???/?? ??
	"image_uv_animation": {
		// Aseprite 프레임 애니메이션
		"anim_type": "aseprite_flip_book",
		// ?? ??
		"initial_uv": [0, 0]
	},
  // ???/?? ??
  "grid_button_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 34, 34 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings":[
      { "binding_name": "#form_button_texture",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#texture = '') or (#texture = 'loading')))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 32, 32 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "image": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 3,
                // 가로/세로 크기
                "size": [ "100% - 2px", "100% - 2px" ],
                // 게임 값과 연결하는 규칙 목록
                "bindings":[
                  { "binding_name": "#form_button_texture",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                  },
                  { "binding_name": "#form_button_texture_file_system",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture_file_system",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not ((#texture = '') or (#texture = 'loading')))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "enchantment": {
                      // 데이터 목록을 반복 배치
                      "type": "collection_panel",
                      // 목록 아이템을 자동으로 생성
                      "factory": { "name": "void", "control_name": "runeui-salvaging.gradient_temp", "max_children_size": 1 },
                      // 오버라이드 가능한 변수
                      "$rc_gradient_color1": [ 1.0, 0.333, 1.0, 0 ],
                      // 오버라이드 가능한 변수
                      "$rc_gradient_color2": [ 1.0, 0.333, 1.0, 0.7 ],
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        { "binding_name": "#form_button_text",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "form_buttons"
                        },
                        { "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#form_button_text - ('%.6s' * #form_button_text))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#collection_length"
                      }]
                  }},
                  { "durability_bg": {
                      // 이미지 표시
                      "type": "image",
                      // 사용할 이미지 경로
                      "texture": "textures/ui/Black",
                      // 가로/세로 크기
                      "size": [ "100%", 2 ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": 3,
                      // 기준점(어디에서 시작할지)
                      "anchor_from": "bottom_left",
                      // 붙일 위치(어디에 놓을지)
                      "anchor_to": "bottom_left",
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        { "binding_name": "#form_button_text",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "form_buttons"
                        },
                        { "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#form_button_text - ('%.2s' * #form_button_text))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#size_progress"
                        },
                        { "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(not (#size_progress = 100))",
                          // 결과가 들어갈 속성
                          "target_property_name": "#visible"
                      }]
                  }},
                  { "durability_green@durability_temp": {}},
                  { "durability_yellow@durability_temp": {
                      // 오버라이드 가능한 변수
                      "$color": [ 0.9254, 0.9137, 0.1843 ],
                      // 오버라이드 가능한 변수
                      "$max": 80,
                      // 오버라이드 가능한 변수
                      "$min": 60
                  }},
                  { "durability_orange@durability_temp": {
                      // 오버라이드 가능한 변수
                      "$color": [ 0.9254, 0.6705, 0.1843 ],
                      // 오버라이드 가능한 변수
                      "$max": 60,
                      // 오버라이드 가능한 변수
                      "$min": 30
                  }},
                  { "durability_red@durability_temp": {
                      // 오버라이드 가능한 변수
                      "$color": [ 0.9254, 0.2941, 0.1843 ],
                      // 오버라이드 가능한 변수
                      "$max": 30,
                      // 오버라이드 가능한 변수
                      "$min": 0
                  }}
            ]}},
            { "outline": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 사용할 이미지 경로
                "texture": "textures/ui/Black",
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "selected": {
                      // 데이터 목록을 반복 배치
                      "type": "collection_panel",
                      // 목록 아이템을 자동으로 생성
                      "factory": { "name": "void", "control_name": "runeui-salvaging.outline_temp", "max_children_size": 1 },
                      // 게임 값과 연결하는 규칙 목록
                      "bindings": [
                        { "binding_name": "#form_button_text",
                          // 목록 데이터를 반복 연결
                          "binding_type": "collection",
                          // 목록 이름
                          "binding_collection_name": "form_buttons"
                        },
                        { "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#form_button_text - ('%.8s' * #form_button_text) * 1)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#check"
                        },
                        { "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#check = 1)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#condition"
                        },
                        { "binding_type": "view",
                          // 계산식/참조 값
                          "source_property_name": "(#condition * 1)",
                          // 결과가 들어갈 속성
                          "target_property_name": "#collection_length"
                      }]
                  }}]
            }},
            { "button@common_buttons.light_text_button": {
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.form_button_click",
                // 오버라이드 가능한 변수
                "$button_text": "#null",
                // 오버라이드 가능한 변수
                "$button_text_binding_type": "collection",
                // 오버라이드 가능한 변수
                "$button_text_grid_collection_name": "form_buttons",
                // 오버라이드 가능한 변수
                "$button_text_max_size": [ "100%", 20 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_type": "collection_details",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                }],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "hover": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        { "outline": {
                            // 이미지 표시
                            "type": "image",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 1,
                            // 사용할 이미지 경로
                            "texture": "textures/ui/White"
                        }},
                        { "text_hover": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 가로/세로 크기
                            "size": [	"100%c", "100%c" ],
                            // ?? ??
                            "follows_cursor": true,
                            // ?? ??
                            "always_handle_pointer": true,
                            // ?? ??
                            "always_listen_to_input": true,
                            // ??? ?? ?
                            "allow_clipping": false,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 120,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              { "label_core": {
                                  // 글자 표시
                                  "type": "label",
                                  // 보여줄 글자
                                  "text": "#text",
                                  // ?? ??
                                  "shadow": true,
                                  // 기준점에서 이동하는 거리
                                  "offset": [ "60%", 0 ],
                                  // ?? ?? ?
                                  "max_size": [ 220, "default" ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    { "binding_name": "#form_button_text",
                                      // 목록 데이터를 반복 연결
                                      "binding_type": "collection",
                                      // 목록 이름
                                      "binding_collection_name": "form_buttons"
                                    },
                                    { "binding_type": "view",
                                      // 계산식/참조 값
                                      "source_property_name": "('§z' + (#form_button_text - (%.10s * #form_button_text)))",
                                      // 결과가 들어갈 속성
                                      "target_property_name": "#text"
                                  }],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    { "background": {
                                        // 이미지 표시
                                        "type": "image",
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": -10,
                                        // 가로/세로 크기
                                        "size": [ "100% + 9px", "100% + 6px" ],
                                        // 사용할 이미지 경로
                                        "texture": "textures/ui/general_textbox"
                                    }},
                                    { "shadow": {
                                        // 이미지 표시
                                        "type": "image",
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": -11,
                                        // ???
                                        "alpha": 0.5,
                                        // 가로/세로 크기
                                        "size": [ "100% + 9px", "100% + 6px" ],
                                        // 사용할 이미지 경로
                                        "texture": "textures/ui/hud_tip_text_background",
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 2, 2 ]
                                    }}
                              ]}}
                        ]}}
                  ]}}
            ]}}
      ]}}
  ]}
}

skill_interface.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: skill_interface.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-skill_interface",
  // ???/?? ??
  "root_panel": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "core@runeui-skill_interface.core": {}}
  ]},
  // ???/?? ??
  "core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "view",
        // ?? ??
        "source_control_name": "koala_title_data_control",
        // 계산식/참조 값
        "source_property_name": "#preserved_text",
        // 결과가 들어갈 속성
        "target_property_name": "#preserved_text"
      },
      // Apparently this doesn't show up without spacing???
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(('§z') + ( #preserved_text - ('%.211s' * #preserved_text)) ) = 1",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "skill_interface_image": {
          // 이미지 표시
          "type": "image",
          // 기준점(어디에서 시작할지)
          "anchor_from": "right_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "right_middle",
          // 사용할 이미지 경로
          "texture": "textures/ui/skill_interface_NEW",
          // 겹치는 순서(숫자 클수록 위)
          "layer": -10,
          // 가로/세로 크기
          "size": [ 110, 99 ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, 0 ]
      }},
      { "agility_level@runeui-skill_interface.element_level": {
          // 기준점에서 이동하는 거리
          "offset": [ -78, -28.5 ],
          // 오버라이드 가능한 변수
          "$label_preserved": "%.231s"
      }},
      { "attack_level@runeui-skill_interface.element_level": {
          // 기준점에서 이동하는 거리
          "offset": [ -42, -28.5 ],
          // 오버라이드 가능한 변수
          "$label_preserved": "%.241s"
      }},
      { "constitution_level@runeui-skill_interface.element_level": {
          // 기준점에서 이동하는 거리
          "offset": [ -6, -28.5 ],
          // 오버라이드 가능한 변수
          "$label_preserved": "%.250s"
      }},
      { "defense_level@runeui-skill_interface.element_level": {
          // 기준점에서 이동하는 거리
          "offset": [ -78, -14.5 ],
          // 오버라이드 가능한 변수
          "$label_preserved": "%.261s"
      }},
      { "digging_level@runeui-skill_interface.element_level": {
          // 기준점에서 이동하는 거리
          "offset": [ -42, -14.5 ],
          // 오버라이드 가능한 변수
          "$label_preserved": "%.272s"
      }},
      { "farming_level@runeui-skill_interface.element_level": {
          // 기준점에서 이동하는 거리
          "offset": [ -6, -14.5 ],
          // 오버라이드 가능한 변수
          "$label_preserved": "%.283s"
      }},
      { "herblore_level@runeui-skill_interface.element_level": {
          // 기준점에서 이동하는 거리
          "offset": [ -42, -0.5 ],
          // 오버라이드 가능한 변수
          "$label_preserved": "%.295s"
      }},
      { "mining_level@runeui-skill_interface.element_level": {
          // 기준점에서 이동하는 거리
          "offset": [ -6, -0.5 ],
          // 오버라이드 가능한 변수
          "$label_preserved": "%.305s"
      }},
      { "prayer_level@runeui-skill_interface.element_level": {
          // 기준점에서 이동하는 거리
          "offset": [ -78, 13.5 ],
          // 오버라이드 가능한 변수
          "$label_preserved": "%.315s"
      }},
      { "ranged_level@runeui-skill_interface.element_level": {
          // 기준점에서 이동하는 거리
          "offset": [ -42, 13.5 ],
          // 오버라이드 가능한 변수
          "$label_preserved": "%.325s"
      }},
      //woodcutting
      { "woodcutting_level@runeui-skill_interface.element_level": {
          // 기준점에서 이동하는 거리
          "offset": [ -78, 27 ],
          // 오버라이드 가능한 변수
          "$label_preserved": "%.337s"
      }},
      //thieving
      { "thieving_level@runeui-skill_interface.element_level": {
          // 기준점에서 이동하는 거리
          "offset": [ -42, 27 ],
          // 오버라이드 가능한 변수
          "$label_preserved": "%.352s"
      }},
      //smithing
      { "smelting_level@runeui-skill_interface.element_level": {
          // 기준점에서 이동하는 거리
          "offset": [ -6, 13.5 ],
          // 오버라이드 가능한 변수
          "$label_preserved": "%.374s"
      }},
      { "total_level@runeui-skill_interface.element_level": {
          // ?? (R,G,B,A)
          "color": [ 0.85, 0.85, 0.85 ],
          // 가로/세로 크기
          "size": [ 24, 8 ],
          // 기준점에서 이동하는 거리
          "offset": [ -52, 41 ],
          // 오버라이드 가능한 변수
          "$label_preserved": "%.218s"
      }},
      {
        // 다른 템플릿을 가져와서 확장(상속)
        "fletching_level@runeui-skill_interface.element_level": {
            // 기준점에서 이동하는 거리
            "offset": [ -78, -0.5],
            // 오버라이드 가능한 변수
            "$label_preserved": "%.384s"
        }
      },
      { "combat_level@runeui-skill_interface.element_level": {
          // ?? (R,G,B,A)
          "color": [ 0.85, 0.85, 0.85 ],
          // 기준점에서 이동하는 거리
          "offset": [ -17, 41 ],
          // 오버라이드 가능한 변수
          "$label_preserved": "%.362s"
      }}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "element_level@runeui-gameplay.element_label_renderer": {
    // ?? ??
    "text_alignment": "center",
    // ?? ??
    "shadow": true,
    // 기준점(어디에서 시작할지)
    "anchor_from": "right_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "right_middle",
    // 가로/세로 크기
    "size": [ 18, 8 ],
    // ?? (R,G,B,A)
    "color": [ 0.89, 0.67, 0.17 ]
  }
}

smelting.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: smelting.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-smelting",
  // ???/?? ??
  "element_modal": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$runeui:form_condition": "(not((#title_text - 'smelting.title') = #title_text))",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:form_condition",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "gradient@runeui-common.gradient_background": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 1.000, 0.333, 0.000, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 1.000, 0.333, 0.000, 0.7 ]
      }},
      { "modal@runeui-form.main_panel_no_buttons": {
          // 가로/세로 크기
          "size": [ 236, 200 ],
          // 오버라이드 가능한 변수
          "$title_text_color": [ 1.000, 0.333, 0.000 ],
          // 오버라이드 가능한 변수
          "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
          // 오버라이드 가능한 변수
          "$panel_indent_offset": [ 0, 23 ],
          // 오버라이드 가능한 변수
          "$custom_background": "runeui-smelting.dialog_modal",
          // 오버라이드 가능한 변수
          "$rc_template": "runeui-smelting.scrolling_panel_modal",
          // 오버라이드 가능한 변수
          "$rc_custom_background": "runeui-smelting.background",
          // 오버라이드 가능한 변수
          "$rc_custom_background_size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
      }}
  ]},
  // ???/?? ??
  "element": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$runeui:form_condition": "(not((#title_text - 'smelting.title') = #title_text))",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:form_condition",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "gradient@runeui-common.gradient_background": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 1.000, 0.333, 0.000, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 1.000, 0.333, 0.000, 0.7 ]
      }},
      { "form@runeui-form.main_panel_no_buttons": {
          // 가로/세로 크기
          "size": [ 236, 200 ],
          // 오버라이드 가능한 변수
          "$title_text_color": [ 1.000, 0.333, 0.000 ],
          // 오버라이드 가능한 변수
          "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
          // 오버라이드 가능한 변수
          "$panel_indent_offset": [ 0, 23 ],
          // 오버라이드 가능한 변수
          "$pos": "%.7s",
          // 오버라이드 가능한 변수
          "$title_alignment": "left",
          // 오버라이드 가능한 변수
          "$custom_background": "runeui-smelting.dialog",
          // 오버라이드 가능한 변수
          "$rc_template": "runeui-smelting.scrolling_panel",
          // 오버라이드 가능한 변수
          "$rc_custom_background": "runeui-smelting.background",
          // 오버라이드 가능한 변수
          "$rc_custom_background_size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
      }}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "dialog@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-smelting.dialog_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "dialog_modal@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-repair.dialog_modal_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "background@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-smelting.background_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // ???/?? ??
  "background_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "background_gradient@runeui-common.gradient_background_black": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 1.000, 0.333, 0.000, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 1.000, 0.333, 0.000, 0.7 ]
      }},
      { "panel_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/form_body_background",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ?? (R,G,B,A)
          "color": "$title_text_color",
          // 이미지 반복 여부
          "tiled": true
      }}
  ]},
  // ???/?? ??
  "dialog_modal_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "toolbar@runeui-form.form_style_toolbar": {
          // 오버라이드 가능한 변수
          "$runeui:help_button": false
      }},
      { "styler@runeui-form.form_style_main": {}}
  ]},
  // ???/?? ??
  "dialog_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "toolbar@runeui-form.form_style_toolbar": {
          // 오버라이드 가능한 변수
          "$rc_hover_word": "runeui.help.smelting"
      }},
      { "styler@runeui-form.form_style_main": {}},
      { "debug_text": {
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "#output",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4,
          // ?? ??
          "shadow": true,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 기준점에서 이동하는 거리
          "offset": [ -54, 6 ],
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "#title_text" },
            { "binding_type": "view",
              // 계산식/참조 값
              "source_property_name": "(('§z') + (#title_text - ('%.3s' * #title_text)))",
              // 결과가 들어갈 속성
              "target_property_name": "#output"
          }]
      }},
      { "fuel_icon": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/blocks/runecraft_furnace_active",
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_right",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_right",
          // 기준점에서 이동하는 거리
          "offset": [ -38, 4.5 ],
          // 가로/세로 크기
          "size": [ 12, 12 ]
      }},
      { "salvage_button@runeui-smelting.salvage_button": {}},
      { "fuel_selection@runeui-smelting.fuel_selection": {}},
      { "selected_tab@runeui-smelting.selected_tab": {}}
  ]},
  // ???/?? ??
  "selected_tab": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "33.333%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -19 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "locked_button@common_buttons.light_text_button": {
          // ??/???
          "enabled": false,
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$button_text": "smelting.title",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "",
          // 오버라이드 가능한 변수
          "$button_text_max_size": [ "100%", 20 ],
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_tab_front",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_tab_front_hover",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_tab_front_hover",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_tab_front",
          // 오버라이드 가능한 변수
          "$locked_text_color": [ 0.5, 0.5, 0.5 ]
      }},
      { "outline": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 겹치는 순서(숫자 클수록 위)
          "layer": -2,
          // ???
          "alpha": 0.5,
          // 가로/세로 크기
          "size": [ "100% + 2px", "100% - 1px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, -1.5 ],
          // ?? (R,G,B,A)
          "color": "$title_text_color",
          // 애니메이션 목록
          "anims": [ "@runeui-common.outline_fade_starter" ]
      }}
  ]},
  // ???/?? ??
  "fuel_selection": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 가로/세로 크기
    "size": [ "33.333%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -16 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": -8,
    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "runeui-smelting.fuel_selection_core"
    },
    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
  }]},
  // 다른 템플릿을 가져와서 확장(상속)
  "fuel_selection_core@common_buttons.light_text_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.form_button_click",
    // 오버라이드 가능한 변수
    "$button_text": "fuel.title",
    // 오버라이드 가능한 변수
    "$button_text_max_size": [ "100%", 20 ],
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$border_visible": false,
    // 오버라이드 가능한 변수
    "$border_alpha": 0,
    // 오버라이드 가능한 변수
    "$button_image_fill": true,
    // 오버라이드 가능한 변수
    "$default_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$hover_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$pressed_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$locked_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$default_text_color": [ 0.85, 0.85, 0.85 ],
    // 오버라이드 가능한 변수
    "$hover_text_color": "$dark_button_hover_text_color",
    // 오버라이드 가능한 변수
    "$pressed_text_color": "$dark_button_pressed_text_color",
    // 오버라이드 가능한 변수
    "$locked_text_color": "$dark_button_locked_text_color",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, -1 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#form_button_text - 'fuel.title') = #form_button_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
    }]
  },
  // ???/?? ??
  "salvage_button": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 가로/세로 크기
    "size": [ "33.333%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -16 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": -8,
    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "runeui-smelting.salvage_button_core"
    },
    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
  }]},
  // 다른 템플릿을 가져와서 확장(상속)
  "salvage_button_core@common_buttons.light_text_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.form_button_click",
    // 오버라이드 가능한 변수
    "$button_text": "salvage.title",
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$border_visible": false,
    // 오버라이드 가능한 변수
    "$border_alpha": 0,
    // 오버라이드 가능한 변수
    "$button_image_fill": true,
    // 오버라이드 가능한 변수
    "$default_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$hover_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$pressed_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$locked_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$default_text_color": [ 0.85, 0.85, 0.85 ],
    // 오버라이드 가능한 변수
    "$hover_text_color": "$dark_button_hover_text_color",
    // 오버라이드 가능한 변수
    "$pressed_text_color": "$dark_button_pressed_text_color",
    // 오버라이드 가능한 변수
    "$locked_text_color": "$dark_button_locked_text_color",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, -1 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#form_button_text - 'salvage.title') = #form_button_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
    }]
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel@runeui-form.long_form_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-smelting.scrolling_content"
  },
  // ??? ??
  "scrolling_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding_00": { "type": "panel", "size": [ "100%", 3 ]}},
      { "label_offset_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "main_label": {
                // 글자 표시
                "type": "label",
                // 기준점에서 이동하는 거리
                "offset": [ 2, 0 ],
                // 가로/세로 크기
                "size": [ "100% - 6px", "default" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // ?? ??
                "shadow": true,
                // 보여줄 글자
                "text": "#form_text",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_name": "#form_text" },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (#form_text = ''))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "background": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "100% + 6px", "100% + 6px" ],
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": -1,
                      // ?? ??
                      "clip_pixelperfect": true,
                      // 기준점에서 이동하는 거리
                      "offset": [ -2, 0 ],
                      // 사용할 이미지 경로
                      "texture": "textures/ui/solid_textbox"
                  }}
            ]}}
      ]}},
      { "padding": { "type": "panel", "size": [ "100%", 10 ]}},
      { "wrapping_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100% - 12px", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "element@runeui-form.element_factory": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 30,
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // 오버라이드 가능한 변수
                "$runeui:panel_control": "runeui-smelting.grid_button_panel_padding",
                // 오버라이드 가능한 변수
                "$runeui:condition": "$runeui:form_condition"
            }}
      ]}}
  ]},
  // ???/?? ??
  "grid_button_panel_padding": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // ??? ?? ?
    "grid_item_template": "runeui-common.grid_button_core",
		// ??? ?? ?
		"grid_rescaling_type": "horizontal",
		// 목록 이름
		"collection_name": "form_buttons",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{	"binding_name": "#form_button_length" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#form_button_length - 2)",
        // 결과가 들어갈 속성
        "target_property_name": "#maximum_grid_items"
      }
	]},
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel_modal@runeui-form.custom_form_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-smelting.scrolling_modal"
  },
  // ???/?? ??
  "scrolling_modal": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding": { "type": "panel", "size": [ "100%", 3 ]}},
      { "generated_form@runeui-form.generated_contents": {}},
      { "submit_button@common_buttons.light_text_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.submit_custom_form",
          // 가로/세로 크기
          "size": [ "100% - 8px", 32 ],
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$default_text_color": [ 0.85, 0.85, 0.85 ],
          // 오버라이드 가능한 변수
          "$hover_text_color": "$dark_button_hover_text_color",
          // 오버라이드 가능한 변수
          "$pressed_text_color": "$dark_button_pressed_text_color",
          // 오버라이드 가능한 변수
          "$locked_text_color": "$dark_button_locked_text_color",
          // 오버라이드 가능한 변수
          "$button_text": "Smelt!",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "#submit_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
          }]
      }}
  ]}
}

smithing.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: smithing.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-smithing",
  // ???/?? ??
  "element_modal": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$runeui:form_condition": "(not((#title_text - 'smith.title') = #title_text))",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:form_condition",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "gradient@runeui-common.gradient_background": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 0.658, 0.690, 0.709, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 0.658, 0.690, 0.709, 0.7 ]
      }},
      { "modal@runeui-form.main_panel_no_buttons": {
          // 가로/세로 크기
          "size": [ 236, 200 ],
          // 오버라이드 가능한 변수
          "$title_text_color": [ 0.658, 0.690, 0.709 ],
          // 오버라이드 가능한 변수
          "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
          // 오버라이드 가능한 변수
          "$panel_indent_offset": [ 0, 23 ],
          // 오버라이드 가능한 변수
          "$custom_background": "runeui-smithing.dialog_modal",
          // 오버라이드 가능한 변수
          "$rc_template": "runeui-smithing.scrolling_panel_modal",
          // 오버라이드 가능한 변수
          "$rc_custom_background": "runeui-smithing.background",
          // 오버라이드 가능한 변수
          "$rc_custom_background_size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
      }}
  ]},
  // ???/?? ??
  "element": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$runeui:form_condition": "(not((#title_text - 'smith.title') = #title_text))",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:form_condition",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "gradient@runeui-common.gradient_background": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 0.658, 0.690, 0.709, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 0.658, 0.690, 0.709, 0.7 ]
      }},
      { "form@runeui-form.main_panel_no_buttons": {
          // 가로/세로 크기
          "size": [ 236, 200 ],
          // 오버라이드 가능한 변수
          "$title_text_color": [ 0.658, 0.690, 0.709 ],
          // 오버라이드 가능한 변수
          "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
          // 오버라이드 가능한 변수
          "$panel_indent_offset": [ 0, 23 ],
          // 오버라이드 가능한 변수
          "$custom_background": "runeui-smithing.dialog",
          // 오버라이드 가능한 변수
          "$rc_template": "runeui-smithing.scrolling_panel",
          // 오버라이드 가능한 변수
          "$rc_custom_background": "runeui-smithing.background",
          // 오버라이드 가능한 변수
          "$rc_custom_background_size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
      }}
  ]},
  // ???/?? ??
  "dialog": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "main@runeui-form.element_factory": {
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$runeui:panel_control": "runeui-smithing.dialog_core",
          // 오버라이드 가능한 변수
          "$runeui:condition": "$runeui:form_condition"
      }}
  ]},

  // 다른 템플릿을 가져와서 확장(상속)
  "background@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-smithing.background_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "dialog_modal@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-smithing.dialog_modal_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // ???/?? ??
  "background_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "background_gradient@runeui-common.gradient_background_black": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 0.658, 0.690, 0.709, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 0.658, 0.690, 0.709, 0.7 ]
      }},
      { "panel_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/form_body_background",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ?? (R,G,B,A)
          "color": "$title_text_color",
          // 이미지 반복 여부
          "tiled": true
      }}
  ]},
  // ???/?? ??
  "dialog_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "toolbar@runeui-form.form_style_toolbar": {
          // 오버라이드 가능한 변수
          "$rc_hover_word": "runeui.help.smithing"
      }},
      { "styler@runeui-form.form_style_main": {}},
      { "repair@runeui-smithing.repair": {}},
      { "selected_tab@runeui-smithing.selected_tab": {}}
  ]},
  // ???/?? ??
  "dialog_modal_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "toolbar@runeui-form.form_style_toolbar": {
          // 오버라이드 가능한 변수
          "$runeui:help_button": false
      }},
      { "styler@runeui-form.form_style_main": {}}
  ]},
  // ???/?? ??
  "selected_tab": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "50%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -19 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "locked_button@common_buttons.light_text_button": {
          // ??/???
          "enabled": false,
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$button_text": "smith.title",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "",
          // 오버라이드 가능한 변수
          "$button_text_max_size": [ "100%", 20 ],
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_tab_front",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_tab_front_hover",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_tab_front_hover",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_tab_front",
          // 오버라이드 가능한 변수
          "$locked_text_color": [ 0.5, 0.5, 0.5 ]
      }},
      { "outline": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 겹치는 순서(숫자 클수록 위)
          "layer": -2,
          // ???
          "alpha": 0.5,
          // 가로/세로 크기
          "size": [ "100% + 2px", "100% - 1px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, -1.5 ],
          // ?? (R,G,B,A)
          "color": "$title_text_color"
      }}
  ]},
  // ???/?? ??
  "repair": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 가로/세로 크기
    "size": [ "50%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -16 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": -8,
    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "runeui-smithing.repair_core"
    },
    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
  }]},
  // 다른 템플릿을 가져와서 확장(상속)
  "repair_core@common_buttons.light_text_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.form_button_click",
    // 오버라이드 가능한 변수
    "$button_text": "repair.title",
    // 오버라이드 가능한 변수
    "$button_text_max_size": [ "100%", 20 ],
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$border_visible": false,
    // 오버라이드 가능한 변수
    "$border_alpha": 0,
    // 오버라이드 가능한 변수
    "$button_image_fill": true,
    // 오버라이드 가능한 변수
    "$default_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$hover_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$pressed_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$locked_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$default_text_color": [ 0.85, 0.85, 0.85 ],
    // 오버라이드 가능한 변수
    "$hover_text_color": "$dark_button_hover_text_color",
    // 오버라이드 가능한 변수
    "$pressed_text_color": "$dark_button_pressed_text_color",
    // 오버라이드 가능한 변수
    "$locked_text_color": "$dark_button_locked_text_color",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, -1 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#form_button_text - 'repair.title') = #form_button_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
    }]
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel@runeui-form.long_form_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-smithing.scrolling_content"
  },
  // ??? ??
  "scrolling_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding_00": { "type": "panel", "size": [ "100%", 3 ]}},
      { "label_offset_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "main_label": {
                // 글자 표시
                "type": "label",
                // 기준점에서 이동하는 거리
                "offset": [ 2, 0 ],
                // 가로/세로 크기
                "size": [ "100% - 6px", "default" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // ?? ??
                "shadow": true,
                // 보여줄 글자
                "text": "#form_text",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_name": "#form_text" },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (#form_text = ''))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "background": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "100% + 6px", "100% + 6px" ],
                      // ?? ??
                      "clip_pixelperfect": true,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": -1,
                      // 기준점에서 이동하는 거리
                      "offset": [ -2, 0 ],
                      // 사용할 이미지 경로
                      "texture": "textures/ui/solid_textbox"
                  }}
            ]}}
      ]}},
      { "padding": { "type": "panel", "size": [ "100%", 10 ]}},
      { "wrapping_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100% - 12px", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "element@runeui-form.element_factory": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 30,
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // 오버라이드 가능한 변수
                "$runeui:panel_control": "runeui-smithing.grid_button_panel_padding",
                // 오버라이드 가능한 변수
                "$runeui:condition": "$runeui:form_condition"
            }}
      ]}}
  ]},
  // ???/?? ??
  "grid_button_panel_padding": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // ??? ?? ?
    "grid_item_template": "runeui-common.grid_button_core",
		// ??? ?? ?
		"grid_rescaling_type": "horizontal",
		// 목록 이름
		"collection_name": "form_buttons",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{	"binding_name": "#form_button_length" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#form_button_length - 1)",
        // 결과가 들어갈 속성
        "target_property_name": "#maximum_grid_items"
      }
	]},
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel_modal@runeui-form.custom_form_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-smithing.scrolling_modal"
  },
  // ???/?? ??
  "scrolling_modal": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding": { "type": "panel", "size": [ "100%", 3 ]}},
      { "generated_form@runeui-form.generated_contents": {}},
      { "submit_button@common_buttons.light_text_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.submit_custom_form",
          // 가로/세로 크기
          "size": [ "100% - 8px", 32 ],
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$default_text_color": [ 0.85, 0.85, 0.85 ],
          // 오버라이드 가능한 변수
          "$hover_text_color": "$dark_button_hover_text_color",
          // 오버라이드 가능한 변수
          "$pressed_text_color": "$dark_button_pressed_text_color",
          // 오버라이드 가능한 변수
          "$locked_text_color": "$dark_button_locked_text_color",
          // 오버라이드 가능한 변수
          "$button_text": "Smith!",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "#submit_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
          }]
      }}
  ]}
}

unnoting.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: unnoting.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 이 파일의 이름표(다른 파일에서 @로 참조)
  "namespace": "runeui-unnoting",
  // ???/?? ??
  "element": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 오버라이드 가능한 변수
    "$runeui:form_condition": "(not((#title_text - 'noting_table.unnote.title') = #title_text))",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#title_text" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "$runeui:form_condition",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "gradient@runeui-common.gradient_background": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 0.7686, 0.7098, 0.5137, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 0.7686, 0.7098, 0.5137, 0.7 ]
      }},
      { "form@runeui-form.main_panel_no_buttons": {
          // 가로/세로 크기
          "size": [ 236, 200 ],
          // 오버라이드 가능한 변수
          "$title_text_color": [ 0.7686, 0.7098, 0.5137 ],
          // 오버라이드 가능한 변수
          "$panel_indent_size": [ "100% - 6px", "100% - 26px" ],
          // 오버라이드 가능한 변수
          "$panel_indent_offset": [ 0, 23 ],
          // 오버라이드 가능한 변수
          "$custom_background": "runeui-unnoting.dialog",
          // 오버라이드 가능한 변수
          "$rc_template": "runeui-unnoting.scrolling_panel",
          // 오버라이드 가능한 변수
          "$rc_custom_background": "runeui-unnoting.background",
          // 오버라이드 가능한 변수
          "$rc_custom_background_size": [ "100%", "100%" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 4
      }}
  ]},
  // ???/?? ??
  "dialog": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "main@runeui-form.element_factory": {
          // 가로/세로 크기
          "size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$runeui:panel_control": "runeui-unnoting.dialog_core",
          // 오버라이드 가능한 변수
          "$runeui:condition": "$runeui:form_condition"
      }}
  ]},

  // 다른 템플릿을 가져와서 확장(상속)
  "background@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-unnoting.background_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "dialog_modal@runeui-form.element_factory": {
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$runeui:panel_control": "runeui-unnoting.dialog_modal_core",
    // 오버라이드 가능한 변수
    "$runeui:condition": "$runeui:form_condition"
  },
  // ???/?? ??
  "background_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "background_gradient@runeui-common.gradient_background_black": {
          // 오버라이드 가능한 변수
          "$rc_gradient_color1": [ 0.7686, 0.7098, 0.5137, 0 ],
          // 오버라이드 가능한 변수
          "$rc_gradient_color2": [ 0.7686, 0.7098, 0.5137, 0.7 ]
      }},
      { "panel_background": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/form_body_background",
          // 겹치는 순서(숫자 클수록 위)
          "layer": 1,
          // ?? (R,G,B,A)
          "color": "$title_text_color",
          // 이미지 반복 여부
          "tiled": true
      }}
  ]},
  // ???/?? ??
  "dialog_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      // Change your question mark string here (unnoting)
      // don't forget to delete this comment after you done with it -harlow
      { "toolbar@runeui-form.form_style_toolbar": {
          // 오버라이드 가능한 변수
          "$rc_hover_word": "runeui.help.smithing"
      }},
      { "styler@runeui-form.form_style_main": {}},
      { "noting@runeui-unnoting.noting": {}},
      { "unnote_all@runeui-unnoting.unnote_all": {}},
      { "divider@runeui-common.title_bar_divider": {}},
      { "selected_tab@runeui-unnoting.selected_tab": {}}
  ]},
  // ???/?? ??
  "dialog_modal_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "100%", "100%" ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_middle",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_middle",
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "toolbar@runeui-form.form_style_toolbar": {
          // 오버라이드 가능한 변수
          "$runeui:help_button": false
      }},
      { "styler@runeui-form.form_style_main": {}}
  ]},
  // ???/?? ??
  "selected_tab": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ "50%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -19 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "locked_button@common_buttons.light_text_button": {
          // ??/???
          "enabled": false,
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$button_text": "noting_table.unnote.title",
          // 오버라이드 가능한 변수
          "$pressed_button_name": "",
          // 오버라이드 가능한 변수
          "$button_text_max_size": [ "100%", 20 ],
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_tab_front",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_tab_front_hover",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_tab_front_hover",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_tab_front",
          // 오버라이드 가능한 변수
          "$locked_text_color": [ 0.5, 0.5, 0.5 ]
      }},
      { "outline": {
          // 이미지 표시
          "type": "image",
          // 사용할 이미지 경로
          "texture": "textures/ui/White",
          // 겹치는 순서(숫자 클수록 위)
          "layer": -2,
          // ???
          "alpha": 0.5,
          // 가로/세로 크기
          "size": [ "100% + 2px", "100% - 1px" ],
          // 기준점에서 이동하는 거리
          "offset": [ 0, -1.5 ],
          // ?? (R,G,B,A)
          "color": "$title_text_color",
          // 애니메이션 목록
          "anims": [ "@runeui-common.outline_fade_starter" ]
      }}
  ]},
  // ???/?? ??
  "unnote_all": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 가로/세로 크기
    "size": [ 15, 15 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_right",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_right",
    // 기준점에서 이동하는 거리
    "offset": [ -40, 3 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": 10,
    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "runeui-unnoting.unnote_all_core"
    },
    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
  }]},
  // ???/?? ??
  "unnote_all_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 게임 값과 연결하는 규칙 목록
    "bindings":[
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#form_button_text - 'noting_table.unnote.unnote_all') = #form_button_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "button@common_buttons.light_text_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.form_button_click",
          // 오버라이드 가능한 변수
          "$button_text_binding_type": "collection",
          // 오버라이드 가능한 변수
          "$button_text_grid_collection_name": "form_buttons",
          // 오버라이드 가능한 변수
          "$button_text_max_size": [ "100%", 20 ],
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$focus_border_size_override": [ 0, 0 ],
          // 오버라이드 가능한 변수
          "$button_type_panel": "runeui-unnoting.unnote_all_icon",
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$default_text_color": [ 0.85, 0.85, 0.85 ],
          // 오버라이드 가능한 변수
          "$hover_text_color": "$dark_button_hover_text_color",
          // 오버라이드 가능한 변수
          "$pressed_text_color": "$dark_button_pressed_text_color",
          // 오버라이드 가능한 변수
          "$locked_text_color": "$dark_button_locked_text_color",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
          }]
      }}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "unnote_all_icon@runeui-common.help_button_default": {
    // 사용할 이미지 경로
    "texture": "textures/ui/noting/note",
    // 가로/세로 크기
    "size": [ 12, 12 ],
    // 기준점에서 이동하는 거리
    "offset": [ 0, 0 ],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "item_details_label": {
          // 완전히 제거(공간도 없음)
          "ignored": "(not($hover_state or $pressed_state))",
          // 글자 표시
          "type": "label",
          // 보여줄 글자
          "text": "#form_button_text",
          // ?? ??
          "text_alignment": "left",
          // ?? ?? ?
          "max_size": [ 300, "default" ],
          // 겹치는 순서(숫자 클수록 위)
          "layer": 200,
          // 기준점(어디에서 시작할지)
          "anchor_from": "top_middle",
          // 붙일 위치(어디에 놓을지)
          "anchor_to": "top_middle",
          // 기준점에서 이동하는 거리
          "offset": [ 0, 19 ],
          // ?? ??
          "shadow": true,
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_type": "collection_details",
              // 목록 이름
              "binding_collection_name": "form_buttons"
            },
            { "binding_name": "#form_button_text",
              // 목록 데이터를 반복 연결
              "binding_type": "collection",
              // 목록 이름
              "binding_collection_name": "form_buttons"
          }],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "background": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": -10,
                // 가로/세로 크기
                "size": [ "100% + 14px", "100% + 12px" ],
                // 사용할 이미지 경로
                "texture": "textures/ui/general_textbox"
            }},
            { "shadow": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": -11,
                // ???
                "alpha": 0.5,
                // 가로/세로 크기
                "size": [ "100% + 14px", "100% + 12px" ],
                // 사용할 이미지 경로
                "texture": "textures/ui/hud_tip_text_background",
                // 기준점에서 이동하는 거리
                "offset": [ 2, 2 ]
            }}
      ]}}
  ]},
  // ???/?? ??
  "noting": {
    // 데이터 목록을 반복 배치
    "type": "collection_panel",
    // 가로/세로 크기
    "size": [ "50%", 20 ],
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // 기준점에서 이동하는 거리
    "offset": [ 0, -16 ],
    // 겹치는 순서(숫자 클수록 위)
    "layer": -8,
    // 목록 아이템을 자동으로 생성
    "factory":{
      // ?? ??
      "name": "buttons",
      // ??? ???
      "control_name": "runeui-unnoting.noting_core"
    },
    // 목록 이름
    "collection_name": "form_buttons",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#form_button_length",
        // 가져온 값을 다른 속성으로 연결
        "binding_name_override": "#collection_length"
  }]},
  // 다른 템플릿을 가져와서 확장(상속)
  "noting_core@common_buttons.light_text_button": {
    // 오버라이드 가능한 변수
    "$pressed_button_name": "button.form_button_click",
    // 오버라이드 가능한 변수
    "$button_text": "noting_table.note.title",
    // 오버라이드 가능한 변수
    "$button_text_max_size": [ "100%", 20 ],
    // 오버라이드 가능한 변수
    "$button_image_size": [ "100%", "100%" ],
    // 오버라이드 가능한 변수
    "$border_visible": false,
    // 오버라이드 가능한 변수
    "$border_alpha": 0,
    // 오버라이드 가능한 변수
    "$button_image_fill": true,
    // 오버라이드 가능한 변수
    "$default_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$hover_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$pressed_button_texture": "textures/ui/form_tab_back_hover",
    // 오버라이드 가능한 변수
    "$locked_button_texture": "textures/ui/form_tab_back",
    // 오버라이드 가능한 변수
    "$default_text_color": [ 0.85, 0.85, 0.85 ],
    // 오버라이드 가능한 변수
    "$hover_text_color": "$dark_button_hover_text_color",
    // 오버라이드 가능한 변수
    "$pressed_text_color": "$dark_button_pressed_text_color",
    // 오버라이드 가능한 변수
    "$locked_text_color": "$dark_button_locked_text_color",
    // 오버라이드 가능한 변수
    "$button_offset": [ 0, -1 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_type": "collection_details",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#form_button_text - 'noting_table.note.title') = #form_button_text))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
      },
      { "binding_name": "#form_button_text",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
    }]
  },
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel@runeui-form.long_form_scrolling_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-unnoting.scrolling_content"
  },
  // ??? ??
  "scrolling_content": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding_00": { "type": "panel", "size": [ "100%", 3 ]}},
      { "label_offset_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100%", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "main_label": {
                // 글자 표시
                "type": "label",
                // 기준점에서 이동하는 거리
                "offset": [ 2, 0 ],
                // 가로/세로 크기
                "size": [ "100% - 6px", "default" ],
                // 겹치는 순서(숫자 클수록 위)
                "layer": 10,
                // ?? ??
                "shadow": true,
                // 보여줄 글자
                "text": "#form_text",
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_name": "#form_text" },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not (#form_text = ''))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "background": {
                      // 이미지 표시
                      "type": "image",
                      // 가로/세로 크기
                      "size": [ "100% + 6px", "100% + 6px" ],
                      // ?? ??
                      "clip_pixelperfect": true,
                      // 겹치는 순서(숫자 클수록 위)
                      "layer": -1,
                      // 기준점에서 이동하는 거리
                      "offset": [ -2, 0 ],
                      // 사용할 이미지 경로
                      "texture": "textures/ui/solid_textbox"
                  }}
            ]}}
      ]}},
      { "padding": { "type": "panel", "size": [ "100%", 10 ]}},
      { "wrapping_panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ "100% - 12px", "100%c" ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "element@runeui-form.element_factory": {
                // 겹치는 순서(숫자 클수록 위)
                "layer": 30,
                // 가로/세로 크기
                "size": [ "100%", "100%c" ],
                // 오버라이드 가능한 변수
                "$runeui:panel_control": "runeui-unnoting.grid_button_panel_padding",
                // 오버라이드 가능한 변수
                "$runeui:condition": "$runeui:form_condition"
            }}
      ]}}
  ]},
  // ???/?? ??
  "grid_button_panel_padding": {
    // 격자 컨테이너: 칸칸이 배치
    "type": "grid",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // ??? ?? ?
    "grid_item_template": "runeui-unnoting.grid_button_core",
		// ??? ?? ?
		"grid_rescaling_type": "horizontal",
		// 목록 이름
		"collection_name": "form_buttons",
		// 게임 값과 연결하는 규칙 목록
		"bindings": [
			{	"binding_name": "#form_button_length" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(#form_button_length - 2)",
        // 결과가 들어갈 속성
        "target_property_name": "#maximum_grid_items"
      }
	]},
  // ???/?? ??
  "grid_button_core": {
    // 패널: 다른 부품을 담는 바닥판
    "type": "panel",
    // 가로/세로 크기
    "size": [ 34, 34 ],
    // 게임 값과 연결하는 규칙 목록
    "bindings":[
      { "binding_name": "#form_button_texture",
        // 목록 데이터를 반복 연결
        "binding_type": "collection",
        // 목록 이름
        "binding_collection_name": "form_buttons"
      },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "(not ((#texture = '') or (#texture = 'loading')))",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "panel": {
          // 패널: 다른 부품을 담는 바닥판
          "type": "panel",
          // 가로/세로 크기
          "size": [ 32, 32 ],
          // 이 안에 들어가는 부품 목록
          "controls": [
            { "image": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 100,
                // 가로/세로 크기
                "size": [ 32, 32 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings":[
                  { "binding_name": "#form_button_texture",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                  },
                  { "binding_name": "#form_button_texture_file_system",
                    // 가져온 값을 다른 속성으로 연결
                    "binding_name_override": "#texture_file_system",
                    // 목록 데이터를 반복 연결
                    "binding_type": "collection",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                  },
                  { "binding_type": "view",
                    // 계산식/참조 값
                    "source_property_name": "(not ((#texture = '') or (#texture = 'loading')))",
                    // 결과가 들어갈 속성
                    "target_property_name": "#visible"
                }]
            }},
            { "outline": {
                // 이미지 표시
                "type": "image",
                // 겹치는 순서(숫자 클수록 위)
                "layer": 1,
                // 가로/세로 크기
                "size": [ 32, 32 ],
                // 사용할 이미지 경로
                "texture": "textures/ui/noting/default_frame"
            }},
            { "button@common_buttons.light_text_button": {
                // 오버라이드 가능한 변수
                "$pressed_button_name": "button.form_button_click",
                // 오버라이드 가능한 변수
                "$button_text": "#null",
                // 오버라이드 가능한 변수
                "$button_text_binding_type": "collection",
                // 오버라이드 가능한 변수
                "$button_text_grid_collection_name": "form_buttons",
                // 오버라이드 가능한 변수
                "$button_text_max_size": [ "100%", 20 ],
                // 게임 값과 연결하는 규칙 목록
                "bindings": [
                  { "binding_type": "collection_details",
                    // 목록 이름
                    "binding_collection_name": "form_buttons"
                }],
                // 이 안에 들어가는 부품 목록
                "controls": [
                  { "hover": {
                      // 패널: 다른 부품을 담는 바닥판
                      "type": "panel",
                      // 이 안에 들어가는 부품 목록
                      "controls": [
                        { "outline": {
                            // 이미지 표시
                            "type": "image",
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 5,
                            // 가로/세로 크기
                            "size": [ 32, 32 ],
                            // 사용할 이미지 경로
                            "texture": "textures/ui/noting/hover_frame"
                        }},
                        { "text_hover": {
                            // 마우스/커서 따라다니는 패널
                            "type": "input_panel",
                            // 가로/세로 크기
                            "size": [	"100%c", "100%c" ],
                            // ?? ??
                            "follows_cursor": true,
                            // ?? ??
                            "always_handle_pointer": true,
                            // ?? ??
                            "always_listen_to_input": true,
                            // ??? ?? ?
                            "allow_clipping": false,
                            // 겹치는 순서(숫자 클수록 위)
                            "layer": 120,
                            // 이 안에 들어가는 부품 목록
                            "controls": [
                              { "label_core": {
                                  // 글자 표시
                                  "type": "label",
                                  // 보여줄 글자
                                  "text": "#form_button_text",
                                  // ?? ??
                                  "shadow": true,
                                  // 기준점에서 이동하는 거리
                                  "offset": [ "60%", 0 ],
                                  // ?? ?? ?
                                  "max_size": [ 220, "default" ],
                                  // 게임 값과 연결하는 규칙 목록
                                  "bindings": [
                                    { "binding_name": "#form_button_text",
                                      // 목록 데이터를 반복 연결
                                      "binding_type": "collection",
                                      // 목록 이름
                                      "binding_collection_name": "form_buttons"
                                  }],
                                  // 이 안에 들어가는 부품 목록
                                  "controls": [
                                    { "background": {
                                        // 이미지 표시
                                        "type": "image",
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": -10,
                                        // 가로/세로 크기
                                        "size": [ "100% + 9px", "100% + 6px" ],
                                        // 사용할 이미지 경로
                                        "texture": "textures/ui/general_textbox"
                                    }},
                                    { "shadow": {
                                        // 이미지 표시
                                        "type": "image",
                                        // 겹치는 순서(숫자 클수록 위)
                                        "layer": -11,
                                        // ???
                                        "alpha": 0.5,
                                        // 가로/세로 크기
                                        "size": [ "100% + 9px", "100% + 6px" ],
                                        // 사용할 이미지 경로
                                        "texture": "textures/ui/hud_tip_text_background",
                                        // 기준점에서 이동하는 거리
                                        "offset": [ 2, 2 ]
                                    }}
                              ]}}
                        ]}}
                  ]}}
            ]}}
      ]}}
  ]},
  // 다른 템플릿을 가져와서 확장(상속)
  "scrolling_panel_modal@runeui-form.custom_form_panel": {
    // 오버라이드 가능한 변수
    "$scrolling_content": "runeui-unnoting.scrolling_modal"
  },
  // ???/?? ??
  "scrolling_modal": {
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ "100%", "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 기준점(어디에서 시작할지)
    "anchor_from": "top_left",
    // 붙일 위치(어디에 놓을지)
    "anchor_to": "top_left",
    // ?? ??
    "use_child_anchors": true,
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "padding": { "type": "panel", "size": [ "100%", 3 ]}},
      { "generated_form@runeui-form.generated_contents": {}},
      { "submit_button@common_buttons.light_text_button": {
          // 오버라이드 가능한 변수
          "$pressed_button_name": "button.submit_custom_form",
          // 가로/세로 크기
          "size": [ "100% - 8px", 32 ],
          // 오버라이드 가능한 변수
          "$button_image_size": [ "100%", "100%" ],
          // 오버라이드 가능한 변수
          "$border_visible": false,
          // 오버라이드 가능한 변수
          "$border_alpha": 0,
          // 오버라이드 가능한 변수
          "$button_image_fill": true,
          // 오버라이드 가능한 변수
          "$default_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$hover_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$pressed_button_texture": "textures/ui/form_button_pressed",
          // 오버라이드 가능한 변수
          "$locked_button_texture": "textures/ui/form_button",
          // 오버라이드 가능한 변수
          "$default_text_color": [ 0.85, 0.85, 0.85 ],
          // 오버라이드 가능한 변수
          "$hover_text_color": "$dark_button_hover_text_color",
          // 오버라이드 가능한 변수
          "$pressed_text_color": "$dark_button_pressed_text_color",
          // 오버라이드 가능한 변수
          "$locked_text_color": "$dark_button_locked_text_color",
          // 오버라이드 가능한 변수
          "$button_text": "Smith!",
          // 게임 값과 연결하는 규칙 목록
          "bindings": [
            { "binding_name": "#submit_button_visible",
              // 가져온 값을 다른 속성으로 연결
              "binding_name_override": "#visible"
          }]
      }}
  ]}
}

warning.json UI 재료 모음 · .runeui

필요한 부분만 참고해서 가져가세요.

// 예제: warning.json
// 분류: UI 재료 모음 / .runeui
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{ "namespace": "runeui-warning",
  // Put those text in a lang by yourself lol
  "root_panel": {
    // 완전히 제거(공간도 없음)
    "ignored": true,
    // 줄맞춤 컨테이너: 가로/세로로 자동 배치
    "type": "stack_panel",
    // 가로/세로 크기
    "size": [ 320, "100%c" ],
    // 쌓는 방향(가로/세로)
    "orientation": "vertical",
    // 게임 값과 연결하는 규칙 목록
    "bindings": [
      { "binding_name": "#hud_title_text_string" },
      { "binding_type": "view",
        // 계산식/참조 값
        "source_property_name": "((#hud_title_text_string - 'Hp:') = #hud_title_text_string)",
        // 결과가 들어갈 속성
        "target_property_name": "#visible"
    }],
    // 이 안에 들어가는 부품 목록
    "controls": [
      { "dialog_box@runeui-common.dialog_box": {
          // 오버라이드 가능한 변수
          "$dialog_text": "WARNING - Your game is incompatible with this version of RuneCraft.\nWhy this might be?"
      }},
      { "padding_01": { "type": "panel", "size": [ 2, 16 ]}},
      { "dialog_box@runeui-common.dialog_box": {
          // 오버라이드 가능한 변수
          "$dialog_text": "1. You are not using the correct version of Minecraft for this add-on (mention current version for the add-on)"
      }},
      { "padding_02": { "type": "panel", "size": [ 2, 16 ]}},
      { "dialog_box@runeui-common.dialog_box": {
          // 오버라이드 가능한 변수
          "$dialog_text": "2. You do not have the following toggles enabled\n  - Custom Biomes\n  - Upcoming Creator Features\n  - Beta-APIs"
      }}
    ]
    // Crashes issue, had to start over for now...
}}

textures

copper_spear.texture_set.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: copper_spear.texture_set.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // ?? ??
    "format_version": "1.21.30",
    // ???/?? ??
    "minecraft:texture_set": {
        // ?? (R,G,B,A)
        "color": "copper_spear",
        // ?? ??
        "metalness_emissive_roughness_subsurface": "copper_spear_mers"
    }
}

diamond_spear.texture_set.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: diamond_spear.texture_set.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // ?? ??
    "format_version": "1.21.30",
    // ???/?? ??
    "minecraft:texture_set": {
        // ?? (R,G,B,A)
        "color": "diamond_spear",
        // ?? ??
        "metalness_emissive_roughness_subsurface": "diamond_spear_mers"
    }
}

experiencebarempty.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: experiencebarempty.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // 테두리 늘림(9분할)
    "nineslice_size": [
        1,
        0,
        1,
        0
    ],
    // ???/?? ??
    "base_size": [
        182,
        5
    ]
}

experiencebarfull.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: experiencebarfull.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // 테두리 늘림(9분할)
    "nineslice_size": [
        1,
        0,
        1,
        0
    ],
    // ???/?? ??
    "base_size": [
        182,
        5
    ]
}

flipbook_textures.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: flipbook_textures.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
[
    {
        // ?? ??
        "atlas_tile": "group_display_herbs",
        // ??? ?? ?
        "flipbook_texture": "textures/items/group_display_herbs",
        // ?? ??
        "ticks_per_frame": 20,
		// ?? ??
		"blend_frames": false
    },
    {
        // ?? ??
        "atlas_tile": "group_display_sponges",
        // ??? ?? ?
        "flipbook_texture": "textures/items/group_display_sponges",
        // ?? ??
        "ticks_per_frame": 20,
		// ?? ??
		"blend_frames": false
    },
    {
        // ?? ??
        "atlas_tile": "group_display_fragments",
        // ??? ?? ?
        "flipbook_texture": "textures/items/group_display_fragments",
        // ?? ??
        "ticks_per_frame": 20,
		// ?? ??
		"blend_frames": false
    },
    {
        // ?? ??
        "atlas_tile": "group_display_buriables",
        // ??? ?? ?
        "flipbook_texture": "textures/items/group_display_buriables",
        // ?? ??
        "ticks_per_frame": 20,
		// ?? ??
		"blend_frames": false
    },
    {
        // ?? ??
        "atlas_tile": "group_display_potions",
        // ??? ?? ?
        "flipbook_texture": "textures/items/group_display_potions",
        // ?? ??
        "ticks_per_frame": 20,
		// ?? ??
		"blend_frames": false
    },
    {
        // ?? ??
        "atlas_tile": "runecraft_furnace_active",
        // ??? ?? ?
        "flipbook_texture": "textures/blocks/furnace_active",
        // ?? ??
        "ticks_per_frame": 20,
		// ?? ??
		"blend_frames": true
    },
    {
        // ?? ??
        "atlas_tile": "fan_spinning_1",
        // ??? ?? ?
        "flipbook_texture": "textures/blocks/fan_spinning_1",
        // ?? ??
        "ticks_per_frame": 1,
		// ?? ??
		"blend_frames": true
    }
]

form_button.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: form_button.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 5,
  // ???/?? ??
  "base_size": [
    12,
    11
  ]
}

form_button_pressed.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: form_button_pressed.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 5,
  // ???/?? ??
  "base_size": [
    12,
    11
  ]
}

form_scrolling_box.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: form_scrolling_box.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 3,
  // ???/?? ??
  "base_size": [
    6,
    6
  ]
}

form_scrolling_box_bg.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: form_scrolling_box_bg.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 3,
  // ???/?? ??
  "base_size": [
    6,
    6
  ]
}

form_scrolling_pane_bg.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: form_scrolling_pane_bg.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 1,
  // ???/?? ??
  "base_size": [
    1,
    1
  ]
}

form_tab_back.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: form_tab_back.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 4,
  // ???/?? ??
  "base_size": [
    12,
    11
  ]
}

form_tab_back_full.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: form_tab_back_full.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 4,
  // ???/?? ??
  "base_size": [
    12,
    11
  ]
}

form_tab_back_hover.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: form_tab_back_hover.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 4,
  // ???/?? ??
  "base_size": [
    12,
    11
  ]
}

form_tab_back_hover_full.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: form_tab_back_hover_full.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 4,
  // ???/?? ??
  "base_size": [
    12,
    11
  ]
}

form_tab_front.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: form_tab_front.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 4,
  // ???/?? ??
  "base_size": [
    12,
    11
  ]
}

form_tab_front_hover.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: form_tab_front_hover.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 4,
  // ???/?? ??
  "base_size": [
    12,
    11
  ]
}

form_tab_left.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: form_tab_left.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 4,
  // ???/?? ??
  "base_size": [
    12,
    11
  ]
}

form_tab_left_front.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: form_tab_left_front.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 4,
  // ???/?? ??
  "base_size": [
    12,
    11
  ]
}

form_tab_left_front_hover.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: form_tab_left_front_hover.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 4,
  // ???/?? ??
  "base_size": [
    12,
    11
  ]
}

form_tab_left_hover.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: form_tab_left_hover.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": 4,
  // ???/?? ??
  "base_size": [
    12,
    11
  ]
}

general_form.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: general_form.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // 테두리 늘림(9분할)
    "nineslice_size": 4,
    // ???/?? ??
    "base_size": [
        10,
        10
    ]
}

general_textbox.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: general_textbox.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // 테두리 늘림(9분할)
    "nineslice_size": 4,
    // ???/?? ??
    "base_size": [
        12,
        12
    ]
}

glint.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: glint.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{ "frames": [
   {
    // ?? ??
    "filename": "glint 0.ase",
    // ?? ??
    "frame": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   },
   {
    // ?? ??
    "filename": "glint 1.ase",
    // ?? ??
    "frame": { "x": 64, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   },
   {
    // ?? ??
    "filename": "glint 2.ase",
    // ?? ??
    "frame": { "x": 128, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   },
   {
    // ?? ??
    "filename": "glint 3.ase",
    // ?? ??
    "frame": { "x": 192, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   },
   {
    // ?? ??
    "filename": "glint 4.ase",
    // ?? ??
    "frame": { "x": 256, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   },
   {
    // ?? ??
    "filename": "glint 5.ase",
    // ?? ??
    "frame": { "x": 320, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   },
   {
    // ?? ??
    "filename": "glint 6.ase",
    // ?? ??
    "frame": { "x": 384, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   },
   {
    // ?? ??
    "filename": "glint 7.ase",
    // ?? ??
    "frame": { "x": 448, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   },
   {
    // ?? ??
    "filename": "glint 8.ase",
    // ?? ??
    "frame": { "x": 512, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   },
   {
    // ?? ??
    "filename": "glint 9.ase",
    // ?? ??
    "frame": { "x": 576, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   },
   {
    // ?? ??
    "filename": "glint 10.ase",
    // ?? ??
    "frame": { "x": 640, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   },
   {
    // ?? ??
    "filename": "glint 11.ase",
    // ?? ??
    "frame": { "x": 704, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   },
   {
    // ?? ??
    "filename": "glint 12.ase",
    // ?? ??
    "frame": { "x": 768, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   },
   {
    // ?? ??
    "filename": "glint 13.ase",
    // ?? ??
    "frame": { "x": 832, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   },
   {
    // ?? ??
    "filename": "glint 14.ase",
    // ?? ??
    "frame": { "x": 896, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   },
   {
    // ?? ??
    "filename": "glint 15.ase",
    // ?? ??
    "frame": { "x": 960, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   },
   {
    // ?? ??
    "filename": "glint 16.ase",
    // ?? ??
    "frame": { "x": 1024, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 150
   }
 ],
 // ???/?? ??
 "meta": {
  // ?? ??
  "app": "http://www.aseprite.org/",
  // ?? ??
  "version": "1.3.14.4-dev",
  // ?? ??
  "image": "glint.png",
  // ?? ??
  "format": "RGBA8888",
  // 가로/세로 크기
  "size": { "w": 1088, "h": 64 },
  // ?? ??
  "scale": "1",
  // ???/?? ??
  "frameTags": [
  ],
  // ???/?? ??
  "layers": [
   { "name": "Layer 1", "opacity": 255, "blendMode": "normal" }
  ],
  // ???/?? ??
  "slices": [
  ]
 }
}

gold_spear.texture_set.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: gold_spear.texture_set.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // ?? ??
    "format_version": "1.21.30",
    // ???/?? ??
    "minecraft:texture_set": {
        // ?? (R,G,B,A)
        "color": "gold_spear",
        // ?? ??
        "metalness_emissive_roughness_subsurface": "gold_spear_mers"
    }
}

iron_spear.texture_set.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: iron_spear.texture_set.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // ?? ??
    "format_version": "1.21.30",
    // ???/?? ??
    "minecraft:texture_set": {
        // ?? (R,G,B,A)
        "color": "iron_spear",
        // ?? ??
        "metalness_emissive_roughness_subsurface": "iron_spear_mers"
    }
}

item_texture.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: item_texture.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // ?? ??
  "resource_pack-name": "vanilla",
  // ??? ?? ?
  "texture_name": "atlas.items",
  // ???/?? ??
  "texture_data": {
    // ???/?? ??
    "pharaoh_tomb": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/pharaoh_tomb"
    },
    // ???/?? ??
    "pharaoh_tomb_fragment": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/pharaoh_tomb_fragment"
    },
    // ???/?? ??
    "adventure": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/adventure"
    },
    // ???/?? ??
    "adventure_fragment": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/adventure_fragment"
    },
    // ???/?? ??
    "barbarianism": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/barbarianism"
    },
    // ???/?? ??
    "barbarianism_fragment": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/barbarianism_fragment"
    },
    // ???/?? ??
    "beneath_the_stronghold": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/beneath_the_stronghold"
    },
    // ???/?? ??
    "beneath_the_stronghold_fragment": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/beneath_the_stronghold_fragment"
    },
    // ???/?? ??
    "dogs_of_war": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/dogs_of_war"
    },
    // ???/?? ??
    "dogs_of_war_fragment": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/dogs_of_war_fragment"
    },
    // ???/?? ??
    "end": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/end"
    },
    // ???/?? ??
    "end_fragment": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/end_fragment"
    },
    // ???/?? ??
    "jungle_trouble": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/jungle_trouble"
    },
    // ???/?? ??
    "jungle_trouble_fragment": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/jungle_trouble_fragment"
    },
    // ???/?? ??
    "medieval": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/medieval"
    },
    // ???/?? ??
    "medieval_fragment": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/medieval_fragment"
    },
    // ???/?? ??
    "nether_realm": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/nether_realm"
    },
    // ???/?? ??
    "nether_realm_fragment": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/nether_realm_fragment"
    },
    // ???/?? ??
    "out_at_the_mines": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/out_at_the_mines"
    },
    // ???/?? ??
    "out_at_the_mines_fragment": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/out_at_the_mines_fragment"
    },
    // ???/?? ??
    "sea_shanty": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/sea_shanty"
    },
    // ???/?? ??
    "sea_shanty_fragment": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/sea_shanty_fragment"
    },
    // ???/?? ??
    "spooky": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/spooky"
    },
    // ???/?? ??
    "spooky_fragment": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/spooky_fragment"
    },
    // ???/?? ??
    "stratosphere": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/stratosphere"
    },
    // ???/?? ??
    "stratosphere_fragment": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/stratosphere_fragment"
    },
    // ???/?? ??
    "village": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/village"
    },
    // ???/?? ??
    "village_fragment": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/village_fragment"
    },
    // ???/?? ??
    "zamorak_zoo": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/zamorak_zoo"
    },
    // ???/?? ??
    "zamorak_zoo_fragment": {
      // ??? ?? ?
      "textures": "textures/items/exploration/records/zamorak_zoo_fragment"
    },
    // ???/?? ??
    "ranged_skillcape": {
      // ??? ?? ?
      "textures": "textures/items/skillcapes/ranged_skillcape"
    },
    // ???/?? ??
    "agility_skillcape": {
      // ??? ?? ?
      "textures": "textures/items/skillcapes/agility_skillcape"
    },
    // ???/?? ??
    "thieving_skillcape": {
      // ??? ?? ?
      "textures": "textures/items/skillcapes/thieving_skillcape"
    },
    // ???/?? ??
    "defense_skillcape": {
      // ??? ?? ?
      "textures": "textures/items/skillcapes/defense_skillcape"
    },
    // ???/?? ??
    "attack_skillcape": {
      // ??? ?? ?
      "textures": "textures/items/skillcapes/attack_skillcape"
    },
    // ???/?? ??
    "prayer_skillcape": {
      // ??? ?? ?
      "textures": "textures/items/skillcapes/prayer_skillcape"
    },
    // ???/?? ??
    "constitution_skillcape": {
      // ??? ?? ?
      "textures": "textures/items/skillcapes/constitution_skillcape"
    },
    // ???/?? ??
    "farming_skillcape": {
      // ??? ?? ?
      "textures": "textures/items/skillcapes/farming_skillcape"
    },
    // ???/?? ??
    "mining_skillcape": {
      // ??? ?? ?
      "textures": "textures/items/skillcapes/mining_skillcape"
    },
    // ???/?? ??
    "woodcutting_skillcape": {
      // ??? ?? ?
      "textures": "textures/items/skillcapes/woodcutting_skillcape"
    },
    // ???/?? ??
    "digging_skillcape": {
      // ??? ?? ?
      "textures": "textures/items/skillcapes/digging_skillcape"
    },
    // ???/?? ??
    "herblore_skillcape": {
      // ??? ?? ?
      "textures": "textures/items/skillcapes/herblore_skillcape"
    },
    // ???/?? ??
    "smithing_skillcape": {
      // ??? ?? ?
      "textures": "textures/items/skillcapes/smithing_skillcape"
    },
    // ???/?? ??
    "graceful_boots": {
      // ??? ?? ?
      "textures": "textures/items/agility/graceful_boots"
    },
    // ???/?? ??
    "graceful_leggings": {
      // ??? ?? ?
      "textures": "textures/items/agility/graceful_leggings"
    },
    // ???/?? ??
    "graceful_top": {
      // ??? ?? ?
      "textures": "textures/items/agility/graceful_top"
    },
    // ???/?? ??
    "graceful_hood": {
      // ??? ?? ?
      "textures": "textures/items/agility/graceful_hood"
    },
    // ???/?? ??
    "iron_helm": {
      // ??? ?? ?
      "textures": "textures/items/defense/iron_helm"
    },
    // ???/?? ??
    "iron_platebody": {
      // ??? ?? ?
      "textures": "textures/items/defense/iron_platebody"
    },
    // ???/?? ??
    "iron_platelegs": {
      // ??? ?? ?
      "textures": "textures/items/defense/iron_platelegs"
    },
    // ???/?? ??
    "iron_boots": {
      // ??? ?? ?
      "textures": "textures/items/defense/iron_boots"
    },
    // ???/?? ??
    "steel_helm": {
      // ??? ?? ?
      "textures": "textures/items/defense/steel_helm"
    },
    // ???/?? ??
    "steel_platebody": {
      // ??? ?? ?
      "textures": "textures/items/defense/steel_platebody"
    },
    // ???/?? ??
    "steel_platelegs": {
      // ??? ?? ?
      "textures": "textures/items/defense/steel_platelegs"
    },
    // ???/?? ??
    "steel_boots": {
      // ??? ?? ?
      "textures": "textures/items/defense/steel_boots"
    },
    // ???/?? ??
    "black_helm": {
      // ??? ?? ?
      "textures": "textures/items/defense/black_helm"
    },
    // ???/?? ??
    "black_platebody": {
      // ??? ?? ?
      "textures": "textures/items/defense/black_platebody"
    },
    // ???/?? ??
    "black_platelegs": {
      // ??? ?? ?
      "textures": "textures/items/defense/black_platelegs"
    },
    // ???/?? ??
    "black_boots": {
      // ??? ?? ?
      "textures": "textures/items/defense/black_boots"
    },
    // ???/?? ??
    "gold_helm": {
      // ??? ?? ?
      "textures": "textures/items/defense/gold_helm"
    },
    // ???/?? ??
    "gold_platebody": {
      // ??? ?? ?
      "textures": "textures/items/defense/gold_platebody"
    },
    // ???/?? ??
    "gold_platelegs": {
      // ??? ?? ?
      "textures": "textures/items/defense/gold_platelegs"
    },
    // ???/?? ??
    "gold_boots": {
      // ??? ?? ?
      "textures": "textures/items/defense/gold_boots"
    },
    // ???/?? ??
    "mithril_helm": {
      // ??? ?? ?
      "textures": "textures/items/defense/mithril_helm"
    },
    // ???/?? ??
    "mithril_platebody": {
      // ??? ?? ?
      "textures": "textures/items/defense/mithril_platebody"
    },
    // ???/?? ??
    "mithril_platelegs": {
      // ??? ?? ?
      "textures": "textures/items/defense/mithril_platelegs"
    },
    // ???/?? ??
    "mithril_boots": {
      // ??? ?? ?
      "textures": "textures/items/defense/mithril_boots"
    },
    // ???/?? ??
    "adamant_helm": {
      // ??? ?? ?
      "textures": "textures/items/defense/adamant_helm"
    },
    // ???/?? ??
    "adamant_platebody": {
      // ??? ?? ?
      "textures": "textures/items/defense/adamant_platebody"
    },
    // ???/?? ??
    "adamant_platelegs": {
      // ??? ?? ?
      "textures": "textures/items/defense/adamant_platelegs"
    },
    // ???/?? ??
    "adamant_boots": {
      // ??? ?? ?
      "textures": "textures/items/defense/adamant_boots"
    },
    // ???/?? ??
    "rune_helm": {
      // ??? ?? ?
      "textures": "textures/items/defense/rune_helm"
    },
    // ???/?? ??
    "rune_platebody": {
      // ??? ?? ?
      "textures": "textures/items/defense/rune_platebody"
    },
    // ???/?? ??
    "rune_platelegs": {
      // ??? ?? ?
      "textures": "textures/items/defense/rune_platelegs"
    },
    // ???/?? ??
    "rune_boots": {
      // ??? ?? ?
      "textures": "textures/items/defense/rune_boots"
    },
    // ???/?? ??
    "wooden_sword": {
      // ??? ?? ?
      "textures": "textures/items/tools/wooden_sword"
    },
    // ???/?? ??
    "steel_sword": {
      // ??? ?? ?
      "textures": "textures/items/tools/steel_sword"
    },
    // ???/?? ??
    "iron_sword": {
      // ??? ?? ?
      "textures": "textures/items/tools/iron_sword"
    },
    // ???/?? ??
    "gold_sword": {
      // ??? ?? ?
      "textures": "textures/items/tools/gold_sword"
    },
    // ???/?? ??
    "black_sword": {
      // ??? ?? ?
      "textures": "textures/items/tools/black_sword"
    },
    // ???/?? ??
    "mithril_sword": {
      // ??? ?? ?
      "textures": "textures/items/tools/mithril_sword"
    },
    // ???/?? ??
    "adamant_sword": {
      // ??? ?? ?
      "textures": "textures/items/tools/adamant_sword"
    },
    // ???/?? ??
    "rune_sword": {
      // ??? ?? ?
      "textures": "textures/items/tools/rune_sword"
    },
    // ???/?? ??
    "wooden_hoe": {
      // ??? ?? ?
      "textures": "textures/items/tools/wooden_hoe"
    },
    // ???/?? ??
    "steel_hoe": {
      // ??? ?? ?
      "textures": "textures/items/tools/steel_hoe"
    },
    // ???/?? ??
    "iron_hoe": {
      // ??? ?? ?
      "textures": "textures/items/tools/iron_hoe"
    },
    // ???/?? ??
    "gold_hoe": {
      // ??? ?? ?
      "textures": "textures/items/tools/gold_hoe"
    },
    // ???/?? ??
    "black_hoe": {
      // ??? ?? ?
      "textures": "textures/items/tools/black_hoe"
    },
    // ???/?? ??
    "mithril_hoe": {
      // ??? ?? ?
      "textures": "textures/items/tools/mithril_hoe"
    },
    // ???/?? ??
    "adamant_hoe": {
      // ??? ?? ?
      "textures": "textures/items/tools/adamant_hoe"
    },
    // ???/?? ??
    "rune_hoe": {
      // ??? ?? ?
      "textures": "textures/items/tools/rune_hoe"
    },
    // ???/?? ??
    "wooden_shovel": {
      // ??? ?? ?
      "textures": "textures/items/tools/wooden_shovel"
    },
    // ???/?? ??
    "steel_shovel": {
      // ??? ?? ?
      "textures": "textures/items/tools/steel_shovel"
    },
    // ???/?? ??
    "iron_shovel": {
      // ??? ?? ?
      "textures": "textures/items/tools/iron_shovel"
    },
    // ???/?? ??
    "gold_shovel": {
      // ??? ?? ?
      "textures": "textures/items/tools/gold_shovel"
    },
    // ???/?? ??
    "black_shovel": {
      // ??? ?? ?
      "textures": "textures/items/tools/black_shovel"
    },
    // ???/?? ??
    "mithril_shovel": {
      // ??? ?? ?
      "textures": "textures/items/tools/mithril_shovel"
    },
    // ???/?? ??
    "adamant_shovel": {
      // ??? ?? ?
      "textures": "textures/items/tools/adamant_shovel"
    },
    // ???/?? ??
    "rune_shovel": {
      // ??? ?? ?
      "textures": "textures/items/tools/rune_shovel"
    },
    // ???/?? ??
    "wooden_axe": {
      // ??? ?? ?
      "textures": "textures/items/tools/wooden_axe"
    },
    // ???/?? ??
    "steel_axe": {
      // ??? ?? ?
      "textures": "textures/items/tools/steel_axe"
    },
    // ???/?? ??
    "iron_axe": {
      // ??? ?? ?
      "textures": "textures/items/tools/iron_axe"
    },
    // ???/?? ??
    "gold_axe": {
      // ??? ?? ?
      "textures": "textures/items/tools/gold_axe"
    },
    // ???/?? ??
    "black_axe": {
      // ??? ?? ?
      "textures": "textures/items/tools/black_axe"
    },
    // ???/?? ??
    "mithril_axe": {
      // ??? ?? ?
      "textures": "textures/items/tools/mithril_axe"
    },
    // ???/?? ??
    "adamant_axe": {
      // ??? ?? ?
      "textures": "textures/items/tools/adamant_axe"
    },
    // ???/?? ??
    "rune_axe": {
      // ??? ?? ?
      "textures": "textures/items/tools/rune_axe"
    },
    // ???/?? ??
    "wooden_pickaxe": {
      // ??? ?? ?
      "textures": "textures/items/tools/wooden_pickaxe"
    },
    // ???/?? ??
    "steel_pickaxe": {
      // ??? ?? ?
      "textures": "textures/items/tools/steel_pickaxe"
    },
    // ???/?? ??
    "iron_pickaxe": {
      // ??? ?? ?
      "textures": "textures/items/tools/iron_pickaxe"
    },
    // ???/?? ??
    "gold_pickaxe": {
      // ??? ?? ?
      "textures": "textures/items/tools/gold_pickaxe"
    },
    // ???/?? ??
    "black_pickaxe": {
      // ??? ?? ?
      "textures": "textures/items/tools/black_pickaxe"
    },
    // ???/?? ??
    "mithril_pickaxe": {
      // ??? ?? ?
      "textures": "textures/items/tools/mithril_pickaxe"
    },
    // ???/?? ??
    "adamant_pickaxe": {
      // ??? ?? ?
      "textures": "textures/items/tools/adamant_pickaxe"
    },
    // ???/?? ??
    "rune_pickaxe": {
      // ??? ?? ?
      "textures": "textures/items/tools/rune_pickaxe"
    },
    // ???/?? ??
    "rogue_boots": {
      // ??? ?? ?
      "textures": "textures/items/thieving/rogue_boots"
    },
    // ???/?? ??
    "rogue_mask": {
      // ??? ?? ?
      "textures": "textures/items/thieving/rogue_mask"
    },
    // ???/?? ??
    "rogue_top": {
      // ??? ?? ?
      "textures": "textures/items/thieving/rogue_top"
    },
    // ???/?? ??
    "rogue_trousers": {
      // ??? ?? ?
      "textures": "textures/items/thieving/rogue_trousers"
    },
    // ???/?? ??
    "purple_party_hat": {
      // ??? ?? ?
      "textures": "textures/items/thieving/purple_party_hat"
    },
    // ???/?? ??
    "royal_blue_party_hat": {
      // ??? ?? ?
      "textures": "textures/items/exploration/royal_blue_party_hat"
    },
    // ???/?? ??
    "forest_green_party_hat": {
      // ??? ?? ?
      "textures": "textures/items/exploration/forest_green_party_hat"
    },
    // ???/?? ??
    "silver_party_hat": {
      // ??? ?? ?
      "textures": "textures/items/exploration/silver_party_hat"
    },
    // ???/?? ??
    "ore_party_hat": {
      // ??? ?? ?
      "textures": "textures/items/exploration/ore_party_hat"
    },
    // ???/?? ??
    "tree_party_hat": {
      // ??? ?? ?
      "textures": "textures/items/exploration/tree_party_hat"
    },
    // ???/?? ??
    "dirt_party_hat": {
      // ??? ?? ?
      "textures": "textures/items/exploration/dirt_party_hat"
    },
    // ???/?? ??
    "stat_tracker": {
      // ??? ?? ?
      "textures": "textures/items/exploration/stat_tracker"
    },
    // ???/?? ??
    "options": {
      // ??? ?? ?
      "textures": "textures/items/exploration/options_icon"
    },
    // ???/?? ??
    "blood_red_party_hat": {
      // ??? ?? ?
      "textures": "textures/items/tools/blood_red_party_hat"
    },
    // ???/?? ??
    "bones": {
      // ??? ?? ?
      "textures": "textures/items/prayer/bones"
    },
    // ???/?? ??
    "big_bones": {
      // ??? ?? ?
      "textures": "textures/items/prayer/big_bones"
    },
    // ???/?? ??
    "burnt_bones": {
      // ??? ?? ?
      "textures": "textures/items/prayer/burnt_bones"
    },
    // ???/?? ??
    "dragon_bones": {
      // ??? ?? ?
      "textures": "textures/items/prayer/dragon_bones"
    },
    // ???/?? ??
    "warden_core": {
      // ??? ?? ?
      "textures": "textures/items/prayer/warden_core"
    },
    // ???/?? ??
    "wither_spine": {
      // ??? ?? ?
      "textures": "textures/items/prayer/wither_spine"
    },
    // ???/?? ??
    "shade_remains": {
      // ??? ?? ?
      "textures": "textures/items/prayer/shade_remains"
    },
    // ???/?? ??
    "stats_viewer": {
      // ??? ?? ?
      "textures": "textures/items/stats/stats_icon"
    },
    // ???/?? ??
    "magma_cube_remains": {
      // ??? ?? ?
      "textures": "textures/items/prayer/magma_cube_remains"
    },
    // ???/?? ??
    "ghast_remains": {
      // ??? ?? ?
      "textures": "textures/items/prayer/ghast_remains"
    },
    // ???/?? ??
    "slime_remains": {
      // ??? ?? ?
      "textures": "textures/items/prayer/slime_remains"
    },
    // ???/?? ??
    "gilded_altar_centerpiece": {
      // ??? ?? ?
      "textures": "textures/items/prayer/gilded_altar_centerpiece"
    },
    // ???/?? ??
    "dark_green_party_hat": {
      // ??? ?? ?
      "textures": "textures/items/exploration/dark_green_party_hat"
    },
    // ???/?? ??
    "leather_boots": {
      // ??? ?? ?
      "textures": "textures/items/defense/leather_boots.png"
    },
    // ???/?? ??
    "leather_boots_dyed": {
      // ??? ?? ?
      "textures": "textures/items/defense/leather_boots.tga"
    },
    // ???/?? ??
    "leather_body": {
      // ??? ?? ?
      "textures": "textures/items/defense/leather_body.png"
    },
    // ???/?? ??
    "leather_body_dyed": {
      // ??? ?? ?
      "textures": "textures/items/defense/leather_body.tga"
    },
    // ???/?? ??
    "leather_leggings": {
      // ??? ?? ?
      "textures": "textures/items/defense/leather_leggings.png"
    },
    // ???/?? ??
    "leather_leggings_dyed": {
      // ??? ?? ?
      "textures": "textures/items/defense/leather_leggings.tga"
    },
    // ???/?? ??
    "leather_cap": {
      // ??? ?? ?
      "textures": "textures/items/defense/leather_cap.png"
    },
    // ???/?? ??
    "leather_cap_dyed": {
      // ??? ?? ?
      "textures": "textures/items/defense/leather_cap.tga"
    },
    // ???/?? ??
    "iron_ingot": {
      // ??? ?? ?
      "textures": "textures/items/ingots/iron_ingot"
    },

    // ???/?? ??
    "adamant_ingot": {
      // ??? ?? ?
      "textures": "textures/items/ingots/adamant_ingot"
    },
    // ???/?? ??
    "rune_ingot": {
      // ??? ?? ?
      "textures": "textures/items/ingots/rune_ingot"
    },
    // ???/?? ??
    "mithril_ingot": {
      // ??? ?? ?
      "textures": "textures/items/ingots/mithril_ingot"
    },
    // ???/?? ??
    "steel_ingot": {
      // ??? ?? ?
      "textures": "textures/items/ingots/steel_ingot"
    },
    // ???/?? ??
    "black_ingot": {
      // ??? ?? ?
      "textures": "textures/items/ingots/black_ingot"
    },
    // ???/?? ??
    "copper_ingot": {
      // ??? ?? ?
      "textures": "textures/items/ingots/copper_ingot"
    },
    // ???/?? ??
    "copper_helm": {
      // ??? ?? ?
      "textures": "textures/items/defense/copper_helm"
    },
    // ???/?? ??
    "copper_platebody": {
      // ??? ?? ?
      "textures": "textures/items/defense/copper_platebody"
    },
    // ???/?? ??
    "copper_platelegs": {
      // ??? ?? ?
      "textures": "textures/items/defense/copper_platelegs"
    },
    // ???/?? ??
    "copper_boots": {
      // ??? ?? ?
      "textures": "textures/items/defense/copper_boots"
    },
    // ???/?? ??
    "copper_sword": {
      // ??? ?? ?
      "textures": "textures/items/tools/copper_sword"
    },
    // ???/?? ??
    "copper_pickaxe": {
      // ??? ?? ?
      "textures": "textures/items/tools/copper_pickaxe"
    },
    // ???/?? ??
    "copper_axe": {
      // ??? ?? ?
      "textures": "textures/items/tools/copper_axe"
    },
    // ???/?? ??
    "copper_shovel": {
      // ??? ?? ?
      "textures": "textures/items/tools/copper_shovel"
    },
    // ???/?? ??
    "copper_hoe": {
      // ??? ?? ?
      "textures": "textures/items/tools/copper_hoe"
    },
    // ???/?? ??
    "fancy_boots": {
      // ??? ?? ?
      "textures": "textures/items/exploration/fancy_boots"
    },
    // ???/?? ??
    "fighting_boots": {
      // ??? ?? ?
      "textures": "textures/items/exploration/fighting_boots"
    },
    // ???/?? ??
    "adamant_ore": {
      // ??? ?? ?
      "textures": "textures/items/ores/adamant_ore"
    },
    // ???/?? ??
    "raw_copper": {
      // ??? ?? ?
      "textures": "textures/items/ores/copper_ore"
    },
    // ???/?? ??
    "raw_iron": {
      // ??? ?? ?
      "textures": "textures/items/ores/iron_ore"
    },
    // ???/?? ??
    "mithril_ore": {
      // ??? ?? ?
      "textures": "textures/items/ores/mithril_ore"
    },
    // ???/?? ??
    "rune_ore": {
      // ??? ?? ?
      "textures": "textures/items/ores/rune_ore"
    },
    // ???/?? ??
    "gold_nugget": {
      // ??? ?? ?
      "textures": "textures/items/ingots/gold_nugget"
    },
    // ???/?? ??
    "gold_ingot": {
      // ??? ?? ?
      "textures": "textures/items/ingots/gold_ingot"
    },
    // ???/?? ??
    "iron_nugget": {
      // ??? ?? ?
      "textures": "textures/items/ingots/iron_nugget"
    },
    // ???/?? ??
    "uncut_emerald": {
      // ??? ?? ?
      "textures": "textures/items/ores/uncut_emerald_gem"
    },
    // ???/?? ??
    "uncut_jade": {
      // ??? ?? ?
      "textures": "textures/items/ores/uncut_jade_gem"
    },
    // ???/?? ??
    "uncut_opal": {
      // ??? ?? ?
      "textures": "textures/items/ores/uncut_opal_gem"
    },
    // ???/?? ??
    "uncut_red_topaz": {
      // ??? ?? ?
      "textures": "textures/items/ores/uncut_red_topaz_gem"
    },
    // ???/?? ??
    "uncut_diamond": {
      // ??? ?? ?
      "textures": "textures/items/ores/uncut_diamond_gem"
    },
    // ???/?? ??
    "uncut_ruby": {
      // ??? ?? ?
      "textures": "textures/items/ores/uncut_ruby_gem"
    },
    // ???/?? ??
    "uncut_sapphire": {
      // ??? ?? ?
      "textures": "textures/items/ores/uncut_sapphire_gem"
    },
    // ???/?? ??
    "emerald": {
      // ??? ?? ?
      "textures": "textures/items/ingots/emerald_gem"
    },
    // ???/?? ??
    "jade": {
      // ??? ?? ?
      "textures": "textures/items/ingots/jade_gem"
    },
    // ???/?? ??
    "opal": {
      // ??? ?? ?
      "textures": "textures/items/ingots/opal_gem"
    },
    // ???/?? ??
    "red_topaz": {
      // ??? ?? ?
      "textures": "textures/items/ingots/red_topaz_gem"
    },
    // ???/?? ??
    "diamond": {
      // ??? ?? ?
      "textures": "textures/items/ingots/diamond_gem"
    },
    // ???/?? ??
    "ruby": {
      // ??? ?? ?
      "textures": "textures/items/ingots/ruby_gem"
    },
    // ???/?? ??
    "sapphire": {
      // ??? ?? ?
      "textures": "textures/items/ingots/sapphire_gem"
    },
    // ???/?? ??
    "bag_full_of_gems": {
      // ??? ?? ?
      "textures": "textures/items/ingots/bag_full_of_gems"
    },
    // ???/?? ??
    "prayer_book": {
      // ??? ?? ?
      "textures": "textures/items/prayer/prayer_book"
    },
    // ???/?? ??
    "prayer_book_dyed": {
      // ??? ?? ?
      "textures": "textures/items/prayer/prayer_book.tga"
    },
    //mob heads
    "witch_head": {
      // ??? ?? ?
      "textures": "textures/items/mob_heads/witch_head"
    },
    // ???/?? ??
    "panda_head": {
      // ??? ?? ?
      "textures": "textures/items/mob_heads/panda_head"
    },
    // ???/?? ??
    "panda_head_brown": {
      // ??? ?? ?
      "textures": "textures/items/mob_heads/panda_head_brown"
    },
    // ???/?? ??
    "llama_head_brown": {
      // ??? ?? ?
      "textures": "textures/items/mob_heads/llama_head_brown"
    },
    // ???/?? ??
    "llama_head_cream": {
      // ??? ?? ?
      "textures": "textures/items/mob_heads/llama_head_cream"
    },
    // ???/?? ??
    "llama_head_white": {
      // ??? ?? ?
      "textures": "textures/items/mob_heads/llama_head_white"
    },
    // ???/?? ??
    "llama_head_gray": {
      // ??? ?? ?
      "textures": "textures/items/mob_heads/llama_head_gray"
    },
    // ???/?? ??
    "skillmasters_sword": {
      // ??? ?? ?
      "textures": "textures/items/tools/skillmaster/skillmasters_sword"
    },
    // ???/?? ??
    "leather_horse_armor": {
      // ??? ?? ?
      "textures": "textures/items/defense/horse/leather_horse_armor"
    },
    // ???/?? ??
    "iron_horse_armor": {
      // ??? ?? ?
      "textures": "textures/items/defense/horse/iron_horse_armor"
    },
    // ???/?? ??
    "black_horse_armor": {
      // ??? ?? ?
      "textures": "textures/items/defense/horse/black_horse_armor"
    },
    // ???/?? ??
    "steel_horse_armor": {
      // ??? ?? ?
      "textures": "textures/items/defense/horse/steel_horse_armor"
    },
    // ???/?? ??
    "adamant_horse_armor": {
      // ??? ?? ?
      "textures": "textures/items/defense/horse/adamant_horse_armor"
    },
    // ???/?? ??
    "mithril_horse_armor": {
      // ??? ?? ?
      "textures": "textures/items/defense/horse/mithril_horse_armor"
    },
    // ???/?? ??
    "rune_horse_armor": {
      // ??? ?? ?
      "textures": "textures/items/defense/horse/rune_horse_armor"
    },
    //Fishing
    "small_fishing_net": {
      // ??? ?? ?
      "textures": "textures/items/fishing/small_fishing_net"
    },
    //Farming
    "low_grade_fertilizer": {
      // ??? ?? ?
      "textures": "textures/items/farming/low_grade_fertilizer"
    },
    // ???/?? ??
    "mid_grade_fertilizer": {
      // ??? ?? ?
      "textures": "textures/items/farming/mid_grade_fertilizer"
    },
    // ???/?? ??
    "high_grade_fertilizer": {
      // ??? ?? ?
      "textures": "textures/items/farming/high_grade_fertilizer"
    },
    // ???/?? ??
    "compost_bucket_empty": {
      // ??? ?? ?
      "textures": "textures/items/farming/compost_bucket_empty"
    },
    // ???/?? ??
    "plant_cure": {
      // ??? ?? ?
      "textures": "textures/items/farming/plant_cure"
    },
    //Herblore
    "fireflax": {
      // ??? ?? ?
      "textures": "textures/items/herblore/fireflax"
    },
    // ???/?? ??
    "grimy_bubblo": {
      // ??? ?? ?
      "textures": "textures/items/herblore/grimy_bubblo"
    },
    // ???/?? ??
    "grimy_endurill": {
      // ??? ?? ?
      "textures": "textures/items/herblore/grimy_endurill"
    },
    // ???/?? ??
    "grimy_enhantoe": {
      // ??? ?? ?
      "textures": "textures/items/herblore/grimy_enhantoe"
    },
    // ???/?? ??
    "grimy_jumia": {
      // ??? ?? ?
      "textures": "textures/items/herblore/grimy_jumia"
    },
    // ???/?? ??
    "grimy_reveril": {
      // ??? ?? ?
      "textures": "textures/items/herblore/grimy_reveril"
    },
    // ???/?? ??
    "grimy_shiftar": {
      // ??? ?? ?
      "textures": "textures/items/herblore/grimy_shiftar"
    },
    // ???/?? ??
    "grimy_slowent": {
      // ??? ?? ?
      "textures": "textures/items/herblore/grimy_slowent"
    },
    // ???/?? ??
    "grimy_strontar": {
      // ??? ?? ?
      "textures": "textures/items/herblore/grimy_strontar"
    },
    // ???/?? ??
    "grimy_swiftine": {
      // ??? ?? ?
      "textures": "textures/items/herblore/grimy_swiftine"
    },
    // ???/?? ??
    "grimy_telerit": {
      // ??? ?? ?
      "textures": "textures/items/herblore/grimy_telerit"
    },
    // ???/?? ??
    "grimy_windrill": {
      // ??? ?? ?
      "textures": "textures/items/herblore/grimy_windrill"
    },
    // ???/?? ??
    "grimy_shapis": {
      // ??? ?? ?
      "textures": "textures/items/herblore/grimy_shapis"
    },
    // ???/?? ??
    "grimy_visadyme": {
      // ??? ?? ?
      "textures": "textures/items/herblore/grimy_visadyme"
    },
    // ???/?? ??
    "shapis": {
      // ??? ?? ?
      "textures": "textures/items/herblore/shapis"
    },
    // ???/?? ??
    "shapis_seeds": {
      // ??? ?? ?
      "textures": "textures/items/farming/shapis_seeds"
    },
    // ???/?? ??
    "visadyme_seeds": {
      // ??? ?? ?
      "textures": "textures/items/farming/visadyme_seeds"
    },
    // ???/?? ??
    "bubblo": {
      // ??? ?? ?
      "textures": "textures/items/herblore/bubblo"
    },
    // ???/?? ??
    "endurill": {
      // ??? ?? ?
      "textures": "textures/items/herblore/endurill"
    },
    // ???/?? ??
    "enhantoe": {
      // ??? ?? ?
      "textures": "textures/items/herblore/enhantoe"
    },
    // ???/?? ??
    "jumia": {
      // ??? ?? ?
      "textures": "textures/items/herblore/jumia"
    },
    // ???/?? ??
    "reveril": {
      // ??? ?? ?
      "textures": "textures/items/herblore/reveril"
    },
    // ???/?? ??
    "shiftar": {
      // ??? ?? ?
      "textures": "textures/items/herblore/shiftar"
    },
    // ???/?? ??
    "slowent": {
      // ??? ?? ?
      "textures": "textures/items/herblore/slowent"
    },
    // ???/?? ??
    "visadyme": {
      // ??? ?? ?
      "textures": "textures/items/herblore/visadyme"
    },
    // ???/?? ??
    "strontar": {
      // ??? ?? ?
      "textures": "textures/items/herblore/strontar"
    },
    // ???/?? ??
    "swiftine": {
      // ??? ?? ?
      "textures": "textures/items/herblore/swiftine"
    },
    // ???/?? ??
    "telerit": {
      // ??? ?? ?
      "textures": "textures/items/herblore/telerit"
    },
    // ???/?? ??
    "windrill": {
      // ??? ?? ?
      "textures": "textures/items/herblore/windrill"
    },
    // ???/?? ??
    "bubblo_seeds": {
      // ??? ?? ?
      "textures": "textures/items/farming/bubblo_seeds"
    },
    // ???/?? ??
    "endurill_seeds": {
      // ??? ?? ?
      "textures": "textures/items/farming/endurill_seeds"
    },
    // ???/?? ??
    "enhantoe_seeds": {
      // ??? ?? ?
      "textures": "textures/items/farming/enhantoe_seeds"
    },
    // ???/?? ??
    "jumia_seeds": {
      // ??? ?? ?
      "textures": "textures/items/farming/jumia_seeds"
    },
    // ???/?? ??
    "reveril_seeds": {
      // ??? ?? ?
      "textures": "textures/items/farming/reveril_seeds"
    },
    // ???/?? ??
    "shiftar_seeds": {
      // ??? ?? ?
      "textures": "textures/items/farming/shiftar_seeds"
    },
    // ???/?? ??
    "slowent_seeds": {
      // ??? ?? ?
      "textures": "textures/items/farming/slowent_seeds"
    },
    // ???/?? ??
    "strontar_seeds": {
      // ??? ?? ?
      "textures": "textures/items/farming/strontar_seeds"
    },
    // ???/?? ??
    "swiftine_seeds": {
      // ??? ?? ?
      "textures": "textures/items/farming/swiftine_seeds"
    },
    // ???/?? ??
    "telerit_seeds": {
      // ??? ?? ?
      "textures": "textures/items/farming/telerit_seeds"
    },
    // ???/?? ??
    "windrill_seeds": {
      // ??? ?? ?
      "textures": "textures/items/farming/windrill_seeds"
    },
    //potions
    "potion_bottle_empty": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/glass_bottle"
    },
    // ???/?? ??
    "honey_bottle": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/honey_bottle"
    },
    // ???/?? ??
    "potion_bottle_drinkable": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/water_bottle"
    },
    // ???/?? ??
    "jump_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/jump_potion_4"
    },
    // ???/?? ??
    "jump_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/jump_potion_3"
    },
    // ???/?? ??
    "jump_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/jump_potion_2"
    },
    // ???/?? ??
    "jump_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/jump_potion_1"
    },
    // ???/?? ??
    "blindness_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/blindness_potion_4"
    },
    // ???/?? ??
    "blindness_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/blindness_potion_3"
    },
    // ???/?? ??
    "blindness_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/blindness_potion_2"
    },
    // ???/?? ??
    "blindness_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/blindness_potion_1"
    },
    // ???/?? ??
    "leap_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/leap_potion_4"
    },
    // ???/?? ??
    "leap_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/leap_potion_3"
    },
    // ???/?? ??
    "leap_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/leap_potion_2"
    },
    // ???/?? ??
    "leap_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/leap_potion_1"
    },
    // ???/?? ??
    "fire_resistance_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/fire_resistance_potion_4"
    },
    // ???/?? ??
    "fire_resistance_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/fire_resistance_potion_3"
    },
    // ???/?? ??
    "fire_resistance_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/fire_resistance_potion_2"
    },
    // ???/?? ??
    "fire_resistance_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/fire_resistance_potion_1"
    },
    // ???/?? ??
    "stamina_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/stamina_potion_4"
    },
    // ???/?? ??
    "stamina_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/stamina_potion_3"
    },
    // ???/?? ??
    "stamina_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/stamina_potion_2"
    },
    // ???/?? ??
    "stamina_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/stamina_potion_1"
    },
    // ???/?? ??
    "cure_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/cure_potion_4"
    },
    // ???/?? ??
    "cure_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/cure_potion_3"
    },
    // ???/?? ??
    "cure_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/cure_potion_2"
    },
    // ???/?? ??
    "cure_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/cure_potion_1"
    },
    // ???/?? ??
    "grow_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/grow_potion_4"
    },
    // ???/?? ??
    "grow_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/grow_potion_3"
    },
    // ???/?? ??
    "grow_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/grow_potion_2"
    },
    // ???/?? ??
    "grow_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/grow_potion_1"
    },
    // ???/?? ??
    "haste_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/haste_potion_4"
    },
    // ???/?? ??
    "haste_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/haste_potion_3"
    },
    // ???/?? ??
    "haste_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/haste_potion_2"
    },
    // ???/?? ??
    "haste_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/haste_potion_1"
    },
    // ???/?? ??
    "invisibility_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/invisibility_potion_4"
    },
    // ???/?? ??
    "invisibility_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/invisibility_potion_3"
    },
    // ???/?? ??
    "invisibility_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/invisibility_potion_2"
    },
    // ???/?? ??
    "invisibility_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/invisibility_potion_1"
    },
    // ???/?? ??
    "levitation_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/levitation_potion_4"
    },
    // ???/?? ??
    "levitation_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/levitation_potion_3"
    },
    // ???/?? ??
    "levitation_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/levitation_potion_2"
    },
    // ???/?? ??
    "levitation_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/levitation_potion_1"
    },
    // ???/?? ??
    "night_vision_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/night_vision_potion_4"
    },
    // ???/?? ??
    "night_vision_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/night_vision_potion_3"
    },
    // ???/?? ??
    "night_vision_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/night_vision_potion_2"
    },
    // ???/?? ??
    "night_vision_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/night_vision_potion_1"
    },
    // ???/?? ??
    "prayer_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/prayer_potion_4"
    },
    // ???/?? ??
    "prayer_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/prayer_potion_3"
    },
    // ???/?? ??
    "prayer_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/prayer_potion_2"
    },
    // ???/?? ??
    "prayer_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/prayer_potion_1"
    },
    // ???/?? ??
    "shrink_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/shrink_potion_4"
    },
    // ???/?? ??
    "shrink_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/shrink_potion_3"
    },
    // ???/?? ??
    "shrink_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/shrink_potion_2"
    },
    // ???/?? ??
    "shrink_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/shrink_potion_1"
    },
    // ???/?? ??
    "slow_falling_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/slow_falling_potion_4"
    },
    // ???/?? ??
    "slow_falling_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/slow_falling_potion_3"
    },
    // ???/?? ??
    "slow_falling_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/slow_falling_potion_2"
    },
    // ???/?? ??
    "slow_falling_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/slow_falling_potion_1"
    },
    // ???/?? ??
    "strength_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/strength_potion_4"
    },
    // ???/?? ??
    "strength_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/strength_potion_3"
    },
    // ???/?? ??
    "strength_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/strength_potion_2"
    },
    // ???/?? ??
    "strength_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/strength_potion_1"
    },
    // ???/?? ??
    "swiftness_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/swiftness_potion_4"
    },
    // ???/?? ??
    "swiftness_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/swiftness_potion_3"
    },
    // ???/?? ??
    "swiftness_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/swiftness_potion_2"
    },
    // ???/?? ??
    "swiftness_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/swiftness_potion_1"
    },
    // ???/?? ??
    "teleport_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/teleport_potion_4"
    },
    // ???/?? ??
    "teleport_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/teleport_potion_3"
    },
    // ???/?? ??
    "teleport_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/teleport_potion_2"
    },
    // ???/?? ??
    "teleport_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/teleport_potion_1"
    },
    // ???/?? ??
    "transformation_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/transformation_potion_4"
    },
    // ???/?? ??
    "transformation_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/transformation_potion_3"
    },
    // ???/?? ??
    "transformation_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/transformation_potion_2"
    },
    // ???/?? ??
    "transformation_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/transformation_potion_1"
    },
    // ???/?? ??
    "water_breathing_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/water_breathing_potion_4"
    },
    // ???/?? ??
    "water_breathing_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/water_breathing_potion_3"
    },
    // ???/?? ??
    "water_breathing_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/water_breathing_potion_2"
    },
    // ???/?? ??
    "water_breathing_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/water_breathing_potion_1"
    },
    // ???/?? ??
    "self_destruct_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/self_destruct_potion_4"
    },
    // ???/?? ??
    "self_destruct_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/self_destruct_potion_3"
    },
    // ???/?? ??
    "self_destruct_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/self_destruct_potion_2"
    },
    // ???/?? ??
    "self_destruct_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/self_destruct_potion_1"
    },
    // ???/?? ??
    "resistance_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/resistance_potion_4"
    },
    // ???/?? ??
    "resistance_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/resistance_potion_3"
    },
    // ???/?? ??
    "resistance_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/resistance_potion_2"
    },
    // ???/?? ??
    "resistance_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/resistance_potion_1"
    },
    // ???/?? ??
    "darkness_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/darkness_potion_4"
    },
    // ???/?? ??
    "darkness_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/darkness_potion_3"
    },
    // ???/?? ??
    "darkness_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/darkness_potion_2"
    },
    // ???/?? ??
    "darkness_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/darkness_potion_1"
    },
    // ???/?? ??
    "infested_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/infested_potion_4"
    },
    // ???/?? ??
    "infested_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/infested_potion_3"
    },
    // ???/?? ??
    "infested_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/infested_potion_2"
    },
    // ???/?? ??
    "infested_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/infested_potion_1"
    },
    // ???/?? ??
    "oozing_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/oozing_potion_4"
    },
    // ???/?? ??
    "oozing_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/oozing_potion_3"
    },
    // ???/?? ??
    "oozing_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/oozing_potion_2"
    },
    // ???/?? ??
    "oozing_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/oozing_potion_1"
    },
    // ???/?? ??
    "poison_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/poison_potion_4"
    },
    // ???/?? ??
    "poison_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/poison_potion_3"
    },
    // ???/?? ??
    "poison_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/poison_potion_2"
    },
    // ???/?? ??
    "poison_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/poison_potion_1"
    },
    // ???/?? ??
    "slowness_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/slowness_potion_4"
    },
    // ???/?? ??
    "slowness_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/slowness_potion_3"
    },
    // ???/?? ??
    "slowness_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/slowness_potion_2"
    },
    // ???/?? ??
    "slowness_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/slowness_potion_1"
    },
    // ???/?? ??
    "weakness_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/weakness_potion_4"
    },
    // ???/?? ??
    "weakness_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/weakness_potion_3"
    },
    // ???/?? ??
    "weakness_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/weakness_potion_2"
    },
    // ???/?? ??
    "weakness_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/weakness_potion_1"
    },
    // ???/?? ??
    "weaving_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/weaving_potion_4"
    },
    // ???/?? ??
    "weaving_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/weaving_potion_3"
    },
    // ???/?? ??
    "weaving_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/weaving_potion_2"
    },
    // ???/?? ??
    "weaving_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/weaving_potion_1"
    },
    // ???/?? ??
    "wind_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/wind_potion_4"
    },
    // ???/?? ??
    "wind_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/wind_potion_3"
    },
    // ???/?? ??
    "wind_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/wind_potion_2"
    },
    // ???/?? ??
    "wind_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/wind_potion_1"
    },
    // ???/?? ??
    "below_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/below_potion_4"
    },
    // ???/?? ??
    "below_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/below_potion_3"
    },
    // ???/?? ??
    "below_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/below_potion_2"
    },
    // ???/?? ??
    "below_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/below_potion_1"
    },
    // ???/?? ??
    "surface_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/surface_potion_4"
    },
    // ???/?? ??
    "surface_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/surface_potion_3"
    },
    // ???/?? ??
    "surface_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/surface_potion_2"
    },
    // ???/?? ??
    "surface_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/surface_potion_1"
    },
    // ???/?? ??
    "roar_potion_4": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/roar_potion_4"
    },
    // ???/?? ??
    "roar_potion_3": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/roar_potion_3"
    },
    // ???/?? ??
    "roar_potion_2": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/roar_potion_2"
    },
    // ???/?? ??
    "roar_potion_1": {
      // ??? ?? ?
      "textures": "textures/items/herblore/potions/roar_potion_1"
    },
    // ???/?? ??
    "totem_of_preservation": {
      // ??? ?? ?
      "textures": "textures/items/totem_of_preservation"
    },
    // ???/?? ??
    "leather_chestplate": {
      // ??? ?? ?
      "textures": "textures/items/leather_chestplate"
    },
    // ???/?? ??
    "white_rose": {
      // ??? ?? ?
      "textures": "textures/blocks/farming/white_rose"
    },
    // ???/?? ??
    "uncharged_wither_core": {
      // ??? ?? ?
      "textures": "textures/items/uncharged_wither_core"
    },
    // ???/?? ??
    "charged_wither_core": {
      // ??? ?? ?
      "textures": "textures/items/charged_wither_core"
    },
    // ???/?? ??
    "adamant_nugget": {
      // ??? ?? ?
      "textures": "textures/items/ingots/adamant_nugget"
    },
    // ???/?? ??
    "steel_nugget": {
      // ??? ?? ?
      "textures": "textures/items/ingots/steel_nugget"
    },
    // ???/?? ??
    "rune_nugget": {
      // ??? ?? ?
      "textures": "textures/items/ingots/rune_nugget"
    },
    // ???/?? ??
    "mithril_nugget": {
      // ??? ?? ?
      "textures": "textures/items/ingots/mithril_nugget"
    },
    // ???/?? ??
    "black_nugget": {
      // ??? ?? ?
      "textures": "textures/items/ingots/black_nugget"
    },
    // ???/?? ??
    "copper_nugget": {
      // ??? ?? ?
      "textures": "textures/items/ingots/copper_nugget"
    },
    // ???/?? ??
    "beginner_bow": {
      // ??? ?? ?
      "textures": "textures/items/ranged/beginner_bow_standby"
    },
    // ???/?? ??
    "dark_oak_bow": {
      // ??? ?? ?
      "textures": "textures/items/ranged/dark_oak_bow_standby"
    },
    // ???/?? ??
    "cherry_bow": {
      // ??? ?? ?
      "textures": "textures/items/ranged/cherry_bow_standby"
    },
    // ???/?? ??
    "pale_bow": {
      // ??? ?? ?
      "textures": "textures/items/ranged/pale_bow_standby"
    },
    // ???/?? ??
    "mangrove_bow": {
      // ??? ?? ?
      "textures": "textures/items/ranged/mangrove_bow_standby"
    },
    // ???/?? ??
    "warped_bow": {
      // ??? ?? ?
      "textures": "textures/items/ranged/warped_bow_standby"
    },
    // ???/?? ??
    "crimson_bow": {
      // ??? ?? ?
      "textures": "textures/items/ranged/crimson_bow_standby"
    },
    // ???/?? ??
    "flint_arrow": {
      // ??? ?? ?
      "textures": "textures/items/ranged/flint_arrow"
    },
    // ???/?? ??
    "copper_arrow": {
      // ??? ?? ?
      "textures": "textures/items/ranged/copper_arrow"
    },
    // ???/?? ??
    "iron_arrow": {
      // ??? ?? ?
      "textures": "textures/items/ranged/iron_arrow"
    },
    // ???/?? ??
    "steel_arrow": {
      // ??? ?? ?
      "textures": "textures/items/ranged/steel_arrow"
    },
    // ???/?? ??
    "mithril_arrow": {
      // ??? ?? ?
      "textures": "textures/items/ranged/mithril_arrow"
    },
    // ???/?? ??
    "adamant_arrow": {
      // ??? ?? ?
      "textures": "textures/items/ranged/adamant_arrow"
    },
    // ???/?? ??
    "rune_arrow": {
      // ??? ?? ?
      "textures": "textures/items/ranged/rune_arrow"
    },
    // ???/?? ??
    "flint_arrow_tips": {
      // ??? ?? ?
      "textures": "textures/items/ranged/flint_arrow_tips"
    },
    // ???/?? ??
    "copper_arrow_tips": {
      // ??? ?? ?
      "textures": "textures/items/ranged/copper_arrow_tips"
    },
    // ???/?? ??
    "iron_arrow_tips": {
      // ??? ?? ?
      "textures": "textures/items/ranged/iron_arrow_tips"
    },
    // ???/?? ??
    "steel_arrow_tips": {
      // ??? ?? ?
      "textures": "textures/items/ranged/steel_arrow_tips"
    },
    // ???/?? ??
    "mithril_arrow_tips": {
      // ??? ?? ?
      "textures": "textures/items/ranged/mithril_arrow_tips"
    },
    // ???/?? ??
    "adamant_arrow_tips": {
      // ??? ?? ?
      "textures": "textures/items/ranged/adamant_arrow_tips"
    },
    // ???/?? ??
    "rune_arrow_tips": {
      // ??? ?? ?
      "textures": "textures/items/ranged/rune_arrow_tips"
    },
    // ???/?? ??
    "smithing_party_hat": {
      // ??? ?? ?
      "textures": "textures/items/exploration/smithing_party_hat"
    },
    // ???/?? ??
    "acacia_chest_boat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/acacia_chest_boat_note"
    },
    // ???/?? ??
    "adamant_axe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/adamant_axe_note"
    },
    // ???/?? ??
    "adamant_boots_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/adamant_boots_note"
    },
    // ???/?? ??
    "adamant_helm_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/adamant_helm_note"
    },
    // ???/?? ??
    "adamant_hoe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/adamant_hoe_note"
    },
    // ???/?? ??
    "adamant_horse_armor_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/adamant_horse_armor_note"
    },
    // ???/?? ??
    "adamant_pickaxe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/adamant_pickaxe_note"
    },
    // ???/?? ??
    "adamant_platebody_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/adamant_platebody_note"
    },
    // ???/?? ??
    "adamant_platelegs_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/adamant_platelegs_note"
    },
    // ???/?? ??
    "adamant_shovel_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/adamant_shovel_note"
    },
    // ???/?? ??
    "adamant_sword_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/adamant_sword_note"
    },
    // ???/?? ??
    "adventure_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/adventure_note"
    },
    // ???/?? ??
    "agility_skillcape_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/agility_skillcape_note"
    },
    // ???/?? ??
    "attack_skillcape_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/attack_skillcape_note"
    },
    // ???/?? ??
    "bamboo_chest_raft_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/bamboo_chest_raft_note"
    },
    // ???/?? ??
    "bamboo_raft_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/bamboo_raft_note"
    },
    // ???/?? ??
    "barbarianism_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/barbarianism_note"
    },
    // ???/?? ??
    "below_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/below_potion_1_note"
    },
    // ???/?? ??
    "below_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/below_potion_2_note"
    },
    // ???/?? ??
    "below_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/below_potion_3_note"
    },
    // ???/?? ??
    "below_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/below_potion_4_note"
    },
    // ???/?? ??
    "beneath_the_stronghold_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/beneath_the_stronghold_note"
    },
    // ???/?? ??
    "birch_chest_boat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/birch_chest_boat_note"
    },
    // ???/?? ??
    "black_axe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/black_axe_note"
    },
    // ???/?? ??
    "black_boots_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/black_boots_note"
    },
    // ???/?? ??
    "black_helm_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/black_helm_note"
    },
    // ???/?? ??
    "black_hoe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/black_hoe_note"
    },
    // ???/?? ??
    "black_horse_armor_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/black_horse_armor_note"
    },
    // ???/?? ??
    "black_pickaxe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/black_pickaxe_note"
    },
    // ???/?? ??
    "black_platebody_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/black_platebody_note"
    },
    // ???/?? ??
    "black_platelegs_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/black_platelegs_note"
    },
    // ???/?? ??
    "black_shovel_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/black_shovel_note"
    },
    // ???/?? ??
    "black_sword_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/black_sword_note"
    },
    // ???/?? ??
    "blindness_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/blindness_potion_1_note"
    },
    // ???/?? ??
    "blindness_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/blindness_potion_2_note"
    },
    // ???/?? ??
    "blindness_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/blindness_potion_3_note"
    },
    // ???/?? ??
    "blindness_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/blindness_potion_4_note"
    },
    // ???/?? ??
    "blood_red_party_hat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/blood_red_party_hat_note"
    },
    // ???/?? ??
    "boat_acacia_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/boat_acacia_note"
    },
    // ???/?? ??
    "boat_birch_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/boat_birch_note"
    },
    // ???/?? ??
    "boat_darkoak_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/boat_darkoak_note"
    },
    // ???/?? ??
    "boat_dark_oak_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/boat_dark_oak_note"
    },
    // ???/?? ??
    "boat_jungle_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/boat_jungle_note"
    },
    // ???/?? ??
    "boat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/boat_note"
    },
    // ???/?? ??
    "boat_oak_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/boat_oak_note"
    },
    // ???/?? ??
    "boat_spruce_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/boat_spruce_note"
    },
    // ???/?? ??
    "bordure_indented_banner_pattern_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/bordure_indented_banner_pattern_note"
    },
    // ???/?? ??
    "bronze_horse_armor_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/bronze_horse_armor_note"
    },
    // ???/?? ??
    "charged_wither_core_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/charged_wither_core_note"
    },
    // ???/?? ??
    "cherry_boat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/cherry_boat_note"
    },
    // ???/?? ??
    "cherry_chest_boat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/cherry_chest_boat_note"
    },
    // ???/?? ??
    "constitution_skillcape_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/constitution_skillcape_note"
    },
    // ???/?? ??
    "copper_axe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/copper_axe_note"
    },
    // ???/?? ??
    "copper_boots_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/copper_boots_note"
    },
    // ???/?? ??
    "copper_helm_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/copper_helm_note"
    },
    // ???/?? ??
    "copper_hoe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/copper_hoe_note"
    },
    // ???/?? ??
    "copper_pickaxe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/copper_pickaxe_note"
    },
    // ???/?? ??
    "copper_platebody_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/copper_platebody_note"
    },
    // ???/?? ??
    "copper_platelegs_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/copper_platelegs_note"
    },
    // ???/?? ??
    "copper_shovel_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/copper_shovel_note"
    },
    // ???/?? ??
    "copper_sword_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/copper_sword_note"
    },
    // ???/?? ??
    "creeper_banner_pattern_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/creeper_banner_pattern_note"
    },
    // ???/?? ??
    "cure_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/cure_potion_1_note"
    },
    // ???/?? ??
    "cure_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/cure_potion_2_note"
    },
    // ???/?? ??
    "cure_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/cure_potion_3_note"
    },
    // ???/?? ??
    "cure_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/cure_potion_4_note"
    },
    // ???/?? ??
    "darkness_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/darkness_potion_1_note"
    },
    // ???/?? ??
    "darkness_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/darkness_potion_2_note"
    },
    // ???/?? ??
    "darkness_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/darkness_potion_3_note"
    },
    // ???/?? ??
    "darkness_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/darkness_potion_4_note"
    },
    // ???/?? ??
    "dark_green_party_hat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/dark_green_party_hat_note"
    },
    // ???/?? ??
    "dark_oak_chest_boat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/dark_oak_chest_boat_note"
    },
    // ???/?? ??
    "defense_skillcape_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/defense_skillcape_note"
    },
    // ???/?? ??
    "digging_skillcape_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/digging_skillcape_note"
    },
    // ???/?? ??
    "dirt_party_hat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/dirt_party_hat_note"
    },
    // ???/?? ??
    "dogs_of_war_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/dogs_of_war_note"
    },
    // ???/?? ??
    "end_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/end_note"
    },
    // ???/?? ??
    "fancy_boots_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/fancy_boots_note"
    },
    // ???/?? ??
    "farming_skillcape_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/farming_skillcape_note"
    },
    // ???/?? ??
    "field_masoned_banner_pattern_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/field_masoned_banner_pattern_note"
    },
    // ???/?? ??
    "fighting_boots_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/fighting_boots_note"
    },
    // ???/?? ??
    "fire_resistance_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/fire_resistance_potion_1_note"
    },
    // ???/?? ??
    "fire_resistance_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/fire_resistance_potion_2_note"
    },
    // ???/?? ??
    "fire_resistance_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/fire_resistance_potion_3_note"
    },
    // ???/?? ??
    "fire_resistance_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/fire_resistance_potion_4_note"
    },
    // ???/?? ??
    "flower_banner_pattern_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/flower_banner_pattern_note"
    },
    // ???/?? ??
    "flow_banner_pattern_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/flow_banner_pattern_note"
    },
    // ???/?? ??
    "forest_green_party_hat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/forest_green_party_hat_note"
    },
    // ???/?? ??
    "glass_bottle_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/glass_bottle_note"
    },
    // ???/?? ??
    "globe_banner_pattern_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/globe_banner_pattern_note"
    },
    // ???/?? ??
    "gold_axe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/gold_axe_note"
    },
    // ???/?? ??
    "gold_boots_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/gold_boots_note"
    },
    // ???/?? ??
    "gold_helm_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/gold_helm_note"
    },
    // ???/?? ??
    "gold_hoe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/gold_hoe_note"
    },
    // ???/?? ??
    "gold_pickaxe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/gold_pickaxe_note"
    },
    // ???/?? ??
    "gold_platebody_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/gold_platebody_note"
    },
    // ???/?? ??
    "gold_platelegs_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/gold_platelegs_note"
    },
    // ???/?? ??
    "gold_shovel_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/gold_shovel_note"
    },
    // ???/?? ??
    "gold_sword_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/gold_sword_note"
    },
    // ???/?? ??
    "graceful_boots_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/graceful_boots_note"
    },
    // ???/?? ??
    "graceful_hood_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/graceful_hood_note"
    },
    // ???/?? ??
    "graceful_leggings_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/graceful_leggings_note"
    },
    // ???/?? ??
    "graceful_top_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/graceful_top_note"
    },
    // ???/?? ??
    "grow_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/grow_potion_1_note"
    },
    // ???/?? ??
    "grow_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/grow_potion_2_note"
    },
    // ???/?? ??
    "grow_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/grow_potion_3_note"
    },
    // ???/?? ??
    "grow_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/grow_potion_4_note"
    },
    // ???/?? ??
    "guster_banner_pattern_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/guster_banner_pattern_note"
    },
    // ???/?? ??
    "haste_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/haste_potion_1_note"
    },
    // ???/?? ??
    "haste_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/haste_potion_2_note"
    },
    // ???/?? ??
    "haste_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/haste_potion_3_note"
    },
    // ???/?? ??
    "haste_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/haste_potion_4_note"
    },
    // ???/?? ??
    "health_regeneration_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/health_regeneration_potion_1_note"
    },
    // ???/?? ??
    "health_regeneration_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/health_regeneration_potion_2_note"
    },
    // ???/?? ??
    "health_regeneration_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/health_regeneration_potion_3_note"
    },
    // ???/?? ??
    "health_regeneration_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/health_regeneration_potion_4_note"
    },
    // ???/?? ??
    "herblore_skillcape_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/herblore_skillcape_note"
    },
    // ???/?? ??
    "honey_bottle_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/honey_bottle_note"
    },
    // ???/?? ??
    "infested_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/infested_potion_1_note"
    },
    // ???/?? ??
    "infested_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/infested_potion_2_note"
    },
    // ???/?? ??
    "infested_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/infested_potion_3_note"
    },
    // ???/?? ??
    "infested_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/infested_potion_4_note"
    },
    // ???/?? ??
    "invisibility_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/invisibility_potion_1_note"
    },
    // ???/?? ??
    "invisibility_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/invisibility_potion_2_note"
    },
    // ???/?? ??
    "invisibility_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/invisibility_potion_3_note"
    },
    // ???/?? ??
    "invisibility_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/invisibility_potion_4_note"
    },
    // ???/?? ??
    "iron_axe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/iron_axe_note"
    },
    // ???/?? ??
    "iron_boots_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/iron_boots_note"
    },
    // ???/?? ??
    "iron_helm_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/iron_helm_note"
    },
    // ???/?? ??
    "iron_hoe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/iron_hoe_note"
    },
    // ???/?? ??
    "iron_horse_armor_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/iron_horse_armor_note"
    },
    // ???/?? ??
    "iron_pickaxe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/iron_pickaxe_note"
    },
    // ???/?? ??
    "iron_platebody_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/iron_platebody_note"
    },
    // ???/?? ??
    "iron_platelegs_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/iron_platelegs_note"
    },
    // ???/?? ??
    "iron_shovel_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/iron_shovel_note"
    },
    // ???/?? ??
    "iron_sword_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/iron_sword_note"
    },
    // ???/?? ??
    "jump_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/jump_potion_1_note"
    },
    // ???/?? ??
    "jump_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/jump_potion_2_note"
    },
    // ???/?? ??
    "jump_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/jump_potion_3_note"
    },
    // ???/?? ??
    "jump_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/jump_potion_4_note"
    },
    // ???/?? ??
    "jungle_chest_boat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/jungle_chest_boat_note"
    },
    // ???/?? ??
    "jungle_trouble_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/jungle_trouble_note"
    },
    // ???/?? ??
    "leap_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/leap_potion_1_note"
    },
    // ???/?? ??
    "leap_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/leap_potion_2_note"
    },
    // ???/?? ??
    "leap_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/leap_potion_3_note"
    },
    // ???/?? ??
    "leap_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/leap_potion_4_note"
    },
    // ???/?? ??
    "levitation_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/levitation_potion_1_note"
    },
    // ???/?? ??
    "levitation_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/levitation_potion_2_note"
    },
    // ???/?? ??
    "levitation_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/levitation_potion_3_note"
    },
    // ???/?? ??
    "levitation_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/levitation_potion_4_note"
    },
    // ???/?? ??
    "mangrove_boat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/mangrove_boat_note"
    },
    // ???/?? ??
    "mangrove_chest_boat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/mangrove_chest_boat_note"
    },
    // ???/?? ??
    "medieval_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/medieval_note"
    },
    // ???/?? ??
    "minecart_chest_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/minecart_chest_note"
    },
    // ???/?? ??
    "minecart_furnace_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/minecart_furnace_note"
    },
    // ???/?? ??
    "minecart_hopper_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/minecart_hopper_note"
    },
    // ???/?? ??
    "minecart_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/minecart_note"
    },
    // ???/?? ??
    "mining_skillcape_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/mining_skillcape_note"
    },
    // ???/?? ??
    "mithril_axe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/mithril_axe_note"
    },
    // ???/?? ??
    "mithril_boots_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/mithril_boots_note"
    },
    // ???/?? ??
    "mithril_helm_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/mithril_helm_note"
    },
    // ???/?? ??
    "mithril_hoe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/mithril_hoe_note"
    },
    // ???/?? ??
    "mithril_horse_armor_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/mithril_horse_armor_note"
    },
    // ???/?? ??
    "mithril_pickaxe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/mithril_pickaxe_note"
    },
    // ???/?? ??
    "mithril_platebody_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/mithril_platebody_note"
    },
    // ???/?? ??
    "mithril_platelegs_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/mithril_platelegs_note"
    },
    // ???/?? ??
    "mithril_shovel_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/mithril_shovel_note"
    },
    // ???/?? ??
    "mithril_sword_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/mithril_sword_note"
    },
    // ???/?? ??
    "mojang_banner_pattern_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/mojang_banner_pattern_note"
    },
    // ???/?? ??
    "music_disc_11_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_11_note"
    },
    // ???/?? ??
    "music_disc_13_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_13_note"
    },
    // ???/?? ??
    "music_disc_5_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_5_note"
    },
    // ???/?? ??
    "music_disc_blocks_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_blocks_note"
    },
    // ???/?? ??
    "music_disc_cat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_cat_note"
    },
    // ???/?? ??
    "music_disc_chirp_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_chirp_note"
    },
    // ???/?? ??
    "music_disc_creator_music_box_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_creator_music_box_note"
    },
    // ???/?? ??
    "music_disc_creator_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_creator_note"
    },
    // ???/?? ??
    "music_disc_far_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_far_note"
    },
    // ???/?? ??
    "music_disc_lava_chicken_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_lava_chicken_note"
    },
    // ???/?? ??
    "music_disc_mall_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_mall_note"
    },
    // ???/?? ??
    "music_disc_mellohi_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_mellohi_note"
    },
    // ???/?? ??
    "music_disc_otherside_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_otherside_note"
    },
    // ???/?? ??
    "music_disc_pigstep_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_pigstep_note"
    },
    // ???/?? ??
    "music_disc_stal_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_stal_note"
    },
    // ???/?? ??
    "music_disc_strad_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_strad_note"
    },
    // ???/?? ??
    "music_disc_tears_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_tears_note"
    },
    // ???/?? ??
    "music_disc_wait_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_wait_note"
    },
    // ???/?? ??
    "music_disc_ward_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/music_disc_ward_note"
    },
    // ???/?? ??
    "nether_realm_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/nether_realm_note"
    },
    // ???/?? ??
    "nether_star_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/nether_star_note"
    },
    // ???/?? ??
    "night_vision_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/night_vision_potion_1_note"
    },
    // ???/?? ??
    "night_vision_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/night_vision_potion_2_note"
    },
    // ???/?? ??
    "night_vision_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/night_vision_potion_3_note"
    },
    // ???/?? ??
    "night_vision_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/night_vision_potion_4_note"
    },
    // ???/?? ??
    "oak_chest_boat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/oak_chest_boat_note"
    },
    // ???/?? ??
    "oozing_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/oozing_potion_1_note"
    },
    // ???/?? ??
    "oozing_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/oozing_potion_2_note"
    },
    // ???/?? ??
    "oozing_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/oozing_potion_3_note"
    },
    // ???/?? ??
    "oozing_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/oozing_potion_4_note"
    },
    // ???/?? ??
    "options_icon_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/options_icon_note"
    },
    // ???/?? ??
    "ore_party_hat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/ore_party_hat_note"
    },
    // ???/?? ??
    "out_at_the_mines_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/out_at_the_mines_note"
    },
    // ???/?? ??
    "pale_oak_boat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/pale_oak_boat_note"
    },
    // ???/?? ??
    "pale_oak_chest_boat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/pale_oak_chest_boat_note"
    },
    // ???/?? ??
    "pharaoh_tomb_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/pharaoh_tomb_note"
    },
    // ???/?? ??
    "piglin_banner_pattern_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/piglin_banner_pattern_note"
    },
    // ???/?? ??
    "poison_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/poison_potion_1_note"
    },
    // ???/?? ??
    "poison_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/poison_potion_2_note"
    },
    // ???/?? ??
    "poison_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/poison_potion_3_note"
    },
    // ???/?? ??
    "poison_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/poison_potion_4_note"
    },
    // ???/?? ??
    "prayer_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/prayer_potion_1_note"
    },
    // ???/?? ??
    "prayer_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/prayer_potion_2_note"
    },
    // ???/?? ??
    "prayer_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/prayer_potion_3_note"
    },
    // ???/?? ??
    "prayer_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/prayer_potion_4_note"
    },
    // ???/?? ??
    "prayer_skillcape_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/prayer_skillcape_note"
    },
    // ???/?? ??
    "purple_party_hat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/purple_party_hat_note"
    },
    // ???/?? ??
    "ranged_skillcape_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/ranged_skillcape_note"
    },
    // ???/?? ??
    "resistance_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/resistance_potion_1_note"
    },
    // ???/?? ??
    "resistance_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/resistance_potion_2_note"
    },
    // ???/?? ??
    "resistance_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/resistance_potion_3_note"
    },
    // ???/?? ??
    "resistance_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/resistance_potion_4_note"
    },
    // ???/?? ??
    "roar_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/roar_potion_1_note"
    },
    // ???/?? ??
    "roar_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/roar_potion_2_note"
    },
    // ???/?? ??
    "roar_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/roar_potion_3_note"
    },
    // ???/?? ??
    "roar_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/roar_potion_4_note"
    },
    // ???/?? ??
    "rogue_boots_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/rogue_boots_note"
    },
    // ???/?? ??
    "rogue_mask_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/rogue_mask_note"
    },
    // ???/?? ??
    "rogue_top_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/rogue_top_note"
    },
    // ???/?? ??
    "rogue_trousers_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/rogue_trousers_note"
    },
    // ???/?? ??
    "royal_blue_party_hat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/royal_blue_party_hat_note"
    },
    // ???/?? ??
    "rune_axe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/rune_axe_note"
    },
    // ???/?? ??
    "rune_boots_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/rune_boots_note"
    },
    // ???/?? ??
    "rune_helm_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/rune_helm_note"
    },
    // ???/?? ??
    "rune_hoe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/rune_hoe_note"
    },
    // ???/?? ??
    "rune_horse_armor_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/rune_horse_armor_note"
    },
    // ???/?? ??
    "rune_pickaxe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/rune_pickaxe_note"
    },
    // ???/?? ??
    "rune_platebody_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/rune_platebody_note"
    },
    // ???/?? ??
    "rune_platelegs_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/rune_platelegs_note"
    },
    // ???/?? ??
    "rune_shovel_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/rune_shovel_note"
    },
    // ???/?? ??
    "rune_sword_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/rune_sword_note"
    },
    // ???/?? ??
    "sea_shanty_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/sea_shanty_note"
    },
    // ???/?? ??
    "self_destruct_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/self_destruct_potion_1_note"
    },
    // ???/?? ??
    "self_destruct_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/self_destruct_potion_2_note"
    },
    // ???/?? ??
    "self_destruct_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/self_destruct_potion_3_note"
    },
    // ???/?? ??
    "self_destruct_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/self_destruct_potion_4_note"
    },
    // ???/?? ??
    "shears_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/shears_note"
    },
    // ???/?? ??
    "shrink_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/shrink_potion_1_note"
    },
    // ???/?? ??
    "shrink_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/shrink_potion_2_note"
    },
    // ???/?? ??
    "shrink_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/shrink_potion_3_note"
    },
    // ???/?? ??
    "shrink_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/shrink_potion_4_note"
    },
    // ???/?? ??
    "silver_party_hat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/silver_party_hat_note"
    },
    // ???/?? ??
    "skillmasters_sword_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/skillmasters_sword_note"
    },
    // ???/?? ??
    "skull_banner_pattern_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/skull_banner_pattern_note"
    },
    // ???/?? ??
    "slowness_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/slowness_potion_1_note"
    },
    // ???/?? ??
    "slowness_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/slowness_potion_2_note"
    },
    // ???/?? ??
    "slowness_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/slowness_potion_3_note"
    },
    // ???/?? ??
    "slowness_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/slowness_potion_4_note"
    },
    // ???/?? ??
    "slow_falling_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/slow_falling_potion_1_note"
    },
    // ???/?? ??
    "slow_falling_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/slow_falling_potion_2_note"
    },
    // ???/?? ??
    "slow_falling_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/slow_falling_potion_3_note"
    },
    // ???/?? ??
    "slow_falling_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/slow_falling_potion_4_note"
    },
    // ???/?? ??
    "smithing_party_hat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/smithing_party_hat_note"
    },
    // ???/?? ??
    "smithing_skillcape_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/smithing_skillcape_note"
    },
    // ???/?? ??
    "spooky_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/spooky_note"
    },
    // ???/?? ??
    "spruce_chest_boat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/spruce_chest_boat_note"
    },
    // ???/?? ??
    "stamina_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/stamina_potion_1_note"
    },
    // ???/?? ??
    "stamina_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/stamina_potion_2_note"
    },
    // ???/?? ??
    "stamina_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/stamina_potion_3_note"
    },
    // ???/?? ??
    "stamina_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/stamina_potion_4_note"
    },
    // ???/?? ??
    "steel_axe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/steel_axe_note"
    },
    // ???/?? ??
    "steel_boots_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/steel_boots_note"
    },
    // ???/?? ??
    "steel_helm_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/steel_helm_note"
    },
    // ???/?? ??
    "steel_hoe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/steel_hoe_note"
    },
    // ???/?? ??
    "steel_horse_armor_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/steel_horse_armor_note"
    },
    // ???/?? ??
    "steel_pickaxe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/steel_pickaxe_note"
    },
    // ???/?? ??
    "steel_platebody_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/steel_platebody_note"
    },
    // ???/?? ??
    "steel_platelegs_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/steel_platelegs_note"
    },
    // ???/?? ??
    "steel_shovel_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/steel_shovel_note"
    },
    // ???/?? ??
    "steel_sword_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/steel_sword_note"
    },
    // ???/?? ??
    "stratosphere_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/stratosphere_note"
    },
    // ???/?? ??
    "strength_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/strength_potion_1_note"
    },
    // ???/?? ??
    "strength_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/strength_potion_2_note"
    },
    // ???/?? ??
    "strength_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/strength_potion_3_note"
    },
    // ???/?? ??
    "strength_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/strength_potion_4_note"
    },
    // ???/?? ??
    "surface_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/surface_potion_1_note"
    },
    // ???/?? ??
    "surface_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/surface_potion_2_note"
    },
    // ???/?? ??
    "surface_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/surface_potion_3_note"
    },
    // ???/?? ??
    "surface_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/surface_potion_4_note"
    },
    // ???/?? ??
    "swiftness_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/swiftness_potion_1_note"
    },
    // ???/?? ??
    "swiftness_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/swiftness_potion_2_note"
    },
    // ???/?? ??
    "swiftness_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/swiftness_potion_3_note"
    },
    // ???/?? ??
    "swiftness_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/swiftness_potion_4_note"
    },
    // ???/?? ??
    "teleport_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/teleport_potion_1_note"
    },
    // ???/?? ??
    "teleport_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/teleport_potion_2_note"
    },
    // ???/?? ??
    "teleport_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/teleport_potion_3_note"
    },
    // ???/?? ??
    "teleport_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/teleport_potion_4_note"
    },
    // ???/?? ??
    "thieving_skillcape_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/thieving_skillcape_note"
    },
    // ???/?? ??
    "totem_of_undying_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/totem_of_undying_note"
    },
    // ???/?? ??
    "transformation_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/transformation_potion_1_note"
    },
    // ???/?? ??
    "transformation_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/transformation_potion_2_note"
    },
    // ???/?? ??
    "transformation_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/transformation_potion_3_note"
    },
    // ???/?? ??
    "transformation_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/transformation_potion_4_note"
    },
    // ???/?? ??
    "tree_party_hat_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/tree_party_hat_note"
    },
    // ???/?? ??
    "uncharged_wither_core_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/uncharged_wither_core_note"
    },
    // ???/?? ??
    "village_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/village_note"
    },
    // ???/?? ??
    "water_bottle_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/water_bottle_note"
    },
    // ???/?? ??
    "water_breathing_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/water_breathing_potion_1_note"
    },
    // ???/?? ??
    "water_breathing_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/water_breathing_potion_2_note"
    },
    // ???/?? ??
    "water_breathing_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/water_breathing_potion_3_note"
    },
    // ???/?? ??
    "water_breathing_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/water_breathing_potion_4_note"
    },
    // ???/?? ??
    "weakness_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/weakness_potion_1_note"
    },
    // ???/?? ??
    "weakness_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/weakness_potion_2_note"
    },
    // ???/?? ??
    "weakness_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/weakness_potion_3_note"
    },
    // ???/?? ??
    "weakness_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/weakness_potion_4_note"
    },
    // ???/?? ??
    "weaving_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/weaving_potion_1_note"
    },
    // ???/?? ??
    "weaving_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/weaving_potion_2_note"
    },
    // ???/?? ??
    "weaving_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/weaving_potion_3_note"
    },
    // ???/?? ??
    "weaving_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/weaving_potion_4_note"
    },
    // ???/?? ??
    "wind_potion_1_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/wind_potion_1_note"
    },
    // ???/?? ??
    "wind_potion_2_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/wind_potion_2_note"
    },
    // ???/?? ??
    "wind_potion_3_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/wind_potion_3_note"
    },
    // ???/?? ??
    "wind_potion_4_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/wind_potion_4_note"
    },
    // ???/?? ??
    "woodcutting_skillcape_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/woodcutting_skillcape_note"
    },
    // ???/?? ??
    "wooden_axe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/wooden_axe_note"
    },
    // ???/?? ??
    "wooden_hoe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/wooden_hoe_note"
    },
    // ???/?? ??
    "wooden_pickaxe_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/wooden_pickaxe_note"
    },
    // ???/?? ??
    "wooden_shovel_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/wooden_shovel_note"
    },
    // ???/?? ??
    "wooden_sword_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/wooden_sword_note"
    },
    // ???/?? ??
    "zamorak_zoo_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/zamorak_zoo_note"
    },
    // ???/?? ??
    "bow_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/bow_note"
    },
    // ???/?? ??
    "cod_bucket_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/cod_bucket_note"
    },
    // ???/?? ??
    "crossbow_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/crossbow_note"
    },
    // ???/?? ??
    "elytra_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/elytra_note"
    },
    // ???/?? ??
    "fishing_rod_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/fishing_rod_note"
    },
    // ???/?? ??
    "flint_and_steel_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/flint_and_steel_note"
    },
    // ???/?? ??
    "gold_horse_armor_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/gold_horse_armor_note"
    },
    // ???/?? ??
    "lava_bucket_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/lava_bucket_note"
    },
    // ???/?? ??
    "milk_bucket_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/milk_bucket_note"
    },
    // ???/?? ??
    "powder_snow_bucket_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/powder_snow_bucket_note"
    },
    // ???/?? ??
    "pufferfish_bucket_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/pufferfish_bucket_note"
    },
    // ???/?? ??
    "saddle_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/saddle_note"
    },
    // ???/?? ??
    "salmon_bucket_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/salmon_bucket_note"
    },
    // ???/?? ??
    "shield_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/shield_note"
    },
    // ???/?? ??
    "tadpole_bucket_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/tadpole_bucket_note"
    },
    // ???/?? ??
    "water_bucket_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/water_bucket_note"
    },
    // ???/?? ??
    "copper_crossbow": {
      // ??? ?? ?
      "textures": "textures/items/ranged/copper_crossbow_standby"
    },
    // ???/?? ??
    "copper_crossbow_loaded": {
      // ??? ?? ?
      "textures": "textures/items/ranged/copper_crossbow_loaded"
    },
    // ???/?? ??
    "wooden_spear": {
      // ??? ?? ?
      "textures": "textures/items/spears/wooden_spear"
    },
    // ???/?? ??
    "copper_spear": {
      // ??? ?? ?
      "textures": "textures/items/spears/copper_spear"
    },
    // ???/?? ??
    "iron_spear": {
      // ??? ?? ?
      "textures": "textures/items/spears/iron_spear"
    },
    // ???/?? ??
    "gold_spear": {
      // ??? ?? ?
      "textures": "textures/items/spears/gold_spear"
    },
    // ???/?? ??
    "steel_spear": {
      // ??? ?? ?
      "textures": "textures/items/spears/steel_spear"
    },
    // ???/?? ??
    "black_spear": {
      // ??? ?? ?
      "textures": "textures/items/spears/black_spear"
    },
    // ???/?? ??
    "mithril_spear": {
      // ??? ?? ?
      "textures": "textures/items/spears/mithril_spear"
    },
    // ???/?? ??
    "adamant_spear": {
      // ??? ?? ?
      "textures": "textures/items/spears/adamant_spear"
    },
    // ???/?? ??
    "rune_spear": {
      // ??? ?? ?
      "textures": "textures/items/spears/rune_spear"
    },
    // ???/?? ??
    "wooden_spear_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/wooden_spear_note"
    },
    // ???/?? ??
    "copper_spear_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/copper_spear_note"
    },
    // ???/?? ??
    "iron_spear_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/iron_spear_note"
    },
    // ???/?? ??
    "gold_spear_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/gold_spear_note"
    },
    // ???/?? ??
    "steel_spear_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/steel_spear_note"
    },
    // ???/?? ??
    "black_spear_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/black_spear_note"
    },
    // ???/?? ??
    "mithril_spear_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/mithril_spear_note"
    },
    // ???/?? ??
    "adamant_spear_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/adamant_spear_note"
    },
    // ???/?? ??
    "rune_spear_note": {
      // ??? ?? ?
      "textures": "textures/items/note_items/rune_spear_note"
    }
  }
}

netherite_spear.texture_set.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: netherite_spear.texture_set.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // ?? ??
    "format_version": "1.21.30",
    // ???/?? ??
    "minecraft:texture_set": {
        // ?? (R,G,B,A)
        "color": "netherite_spear",
        // ?? ??
        "metalness_emissive_roughness_subsurface": "netherite_spear_mers"
    }
}

notif_icon_background.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: notif_icon_background.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
  // 테두리 늘림(9분할)
  "nineslice_size": [
    2,
    2,
    2,
    2
  ],
  // ???/?? ??
  "base_size": [
    6,
    6
  ]
}

outline.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: outline.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{ "frames": [
   {
    // ?? ??
    "filename": "Sprite-0006 0.",
    // ?? ??
    "frame": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 200
   },
   {
    // ?? ??
    "filename": "Sprite-0006 1.",
    // ?? ??
    "frame": { "x": 64, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 200
   },
   {
    // ?? ??
    "filename": "Sprite-0006 2.",
    // ?? ??
    "frame": { "x": 128, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 200
   },
   {
    // ?? ??
    "filename": "Sprite-0006 3.",
    // ?? ??
    "frame": { "x": 192, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 200
   },
   {
    // ?? ??
    "filename": "Sprite-0006 4.",
    // ?? ??
    "frame": { "x": 256, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 200
   },
   {
    // ?? ??
    "filename": "Sprite-0006 5.",
    // ?? ??
    "frame": { "x": 320, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 200
   },
   {
    // ?? ??
    "filename": "Sprite-0006 6.",
    // ?? ??
    "frame": { "x": 384, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 200
   },
   {
    // ?? ??
    "filename": "Sprite-0006 7.",
    // ?? ??
    "frame": { "x": 448, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 200
   },
   {
    // ?? ??
    "filename": "Sprite-0006 8.",
    // ?? ??
    "frame": { "x": 512, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 200
   },
   {
    // ?? ??
    "filename": "Sprite-0006 9.",
    // ?? ??
    "frame": { "x": 576, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 200
   },
   {
    // ?? ??
    "filename": "Sprite-0006 10.",
    // ?? ??
    "frame": { "x": 640, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 200
   },
   {
    // ?? ??
    "filename": "Sprite-0006 11.",
    // ?? ??
    "frame": { "x": 704, "y": 0, "w": 64, "h": 64 },
    // ?? ??
    "rotated": false,
    // ?? ??
    "trimmed": false,
    // ?? ?? ?
    "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
    // ?? ?? ?
    "sourceSize": { "w": 64, "h": 64 },
    // 걸리는 시간(초)
    "duration": 200
   }
 ],
 // ???/?? ??
 "meta": {
  // ?? ??
  "app": "http://www.aseprite.org/",
  // ?? ??
  "version": "1.3.14.4-dev",
  // ?? ??
  "image": "outline_form.png",
  // ?? ??
  "format": "RGBA8888",
  // 가로/세로 크기
  "size": { "w": 768, "h": 64 },
  // ?? ??
  "scale": "1",
  // ???/?? ??
  "frameTags": [
  ],
  // ???/?? ??
  "layers": [
   { "name": "Layer 1", "opacity": 255, "blendMode": "normal" }
  ],
  // ???/?? ??
  "slices": [
  ]
 }
}

solid_textbox.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: solid_textbox.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // 테두리 늘림(9분할)
    "nineslice_size": 4,
    // ???/?? ??
    "base_size": [
        12,
        12
    ]
}

stone_spear.texture_set.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: stone_spear.texture_set.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // ?? ??
    "format_version": "1.21.30",
    // ???/?? ??
    "minecraft:texture_set": {
        // ?? (R,G,B,A)
        "color": "stone_spear",
        // ?? ??
        "metalness_emissive_roughness_subsurface": "stone_spear_mers"
    }
}

terrain_texture.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: terrain_texture.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
	// ?? ??
	"resource_pack_name": "tut",
	// ??? ?? ?
	"texture_name": "atlas.terrain",
	// ??/?? ?
	"padding": 8,
	// ?? ??
	"num_mip_levels": 4,
	// ???/?? ??
	"texture_data": {
		// ???/?? ??
		"jukebox": {
			// ??? ?? ?
			"textures": "textures/blocks/jukebox"
		},
		// ???/?? ??
		"gilded_altar": {
			// ??? ?? ?
			"textures": "textures/blocks/gilded_altar"
		},
		// ???/?? ??
		"chaos_altar": {
			// ??? ?? ?
			"textures": "textures/blocks/chaos_altar"
		},
		// ???/?? ??
		"chaos_altar_remover": {
			// ??? ?? ?
			"textures": "textures/blocks/chaos_altar"
		},
		// ???/?? ??
		"empty": {
			// ??? ?? ?
			"textures": "textures/blocks/empty"
		},
		// ???/?? ??
		"adamant_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/adamant_ore_block"
		},
		// ???/?? ??
		"deepslate_adamant_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/deepslate_adamant_ore_block"
		},
		// ???/?? ??
		"nether_adamant_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/nether_adamant_ore_block"
		},
		// ???/?? ??
		"end_adamant_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/end_adamant_ore_block"
		},
		// ???/?? ??
		"copper_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/copper_ore_block"
		},
		// ???/?? ??
		"deepslate_copper_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/deepslate_copper_ore_block"
		},
		// ???/?? ??
		"nether_copper_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/nether_copper_ore_block"
		},
		// ???/?? ??
		"end_copper_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/end_copper_ore_block"
		},
		// ???/?? ??
		"iron_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/iron_ore_block"
		},
		// ???/?? ??
		"deepslate_iron_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/deepslate_iron_ore_block"
		},
		// ???/?? ??
		"nether_iron_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/nether_iron_ore_block"
		},
		// ???/?? ??
		"end_iron_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/end_iron_ore_block"
		},
		// ???/?? ??
		"mithril_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/mithril_ore_block"
		},
		// ???/?? ??
		"deepslate_mithril_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/deepslate_mithril_ore_block"
		},
		// ???/?? ??
		"nether_mithril_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/nether_mithril_ore_block"
		},
		// ???/?? ??
		"end_mithril_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/end_mithril_ore_block"
		},
		// ???/?? ??
		"rune_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/rune_ore_block"
		},
		// ???/?? ??
		"deepslate_rune_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/deepslate_rune_ore_block"
		},
		// ???/?? ??
		"nether_rune_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/nether_rune_ore_block"
		},
		// ???/?? ??
		"end_rune_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/end_rune_ore_block"
		},
		// ???/?? ??
		"adamant_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/adamant_block"
		},
		// ???/?? ??
		"black_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/black_block"
		},
		// ???/?? ??
		"block_of_adamant_ore": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/block_of_adamant_ore"
		},
		// ???/?? ??
		"raw_iron_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/block_of_iron_ore"
		},
		// ???/?? ??
		"block_of_mithril_ore": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/block_of_mithril_ore"
		},
		// ???/?? ??
		"block_of_rune_ore": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/block_of_rune_ore"
		},
		// ???/?? ??
		"coal_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/coal_ore_block"
		},
		// ???/?? ??
		"deepslate_coal_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/deepslate_coal_ore_block"
		},
		// ???/?? ??
		"deepslate_gold_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/deepslate_gold_ore_block"
		},
		// ???/?? ??
		"deepslate_redstone_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/deepslate_redstone_ore_block"
		},
		// ???/?? ??
		"end_coal_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/end_coal_ore_block"
		},
		// ???/?? ??
		"end_gold_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/end_gold_ore_block"
		},
		// ???/?? ??
		"end_redstone_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/end_redstone_ore_block"
		},
		// ???/?? ??
		"gold_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/gold_ore_block"
		},
		// ???/?? ??
		"iron_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/iron_block"
		},
		// ???/?? ??
		"mithril_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/mithril_block"
		},
		// ???/?? ??
		"nether_coal_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/nether_coal_ore_block"
		},
		// ???/?? ??
		"nether_gold_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/nether_gold_ore_block"
		},
		// ???/?? ??
		"nether_redstone_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/nether_redstone_ore_block"
		},
		// ???/?? ??
		"redstone_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/redstone_ore_block"
		},
		// ???/?? ??
		"rune_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/rune_block"
		},
		// ???/?? ??
		"steel_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/steel_block"
		},
		// ???/?? ??
		"opal_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/opal_block"
		},
		// ???/?? ??
		"jade_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/jade_block"
		},
		// ???/?? ??
		"ruby_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/ruby_block"
		},
		// ???/?? ??
		"sapphire_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/sapphire_block"
		},
		// ???/?? ??
		"emerald_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/emerald_block"
		},
		// ???/?? ??
		"diamond_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/diamond_block"
		},
		// ???/?? ??
		"red_topaz_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/red_topaz_block"
		},
		// ???/?? ??
		"nether_lapis_lazuli_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/nether_lapis_lazuli_ore_block"
		},
		// ???/?? ??
		"end_lapis_lazuli_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/end_lapis_lazuli_ore_block"
		},
		// ???/?? ??
		"deepslate_lapis_lazuli_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/deepslate_lapis_lazuli_ore_block"
		},
		// ???/?? ??
		"lapis_lazuli_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/lapis_lazuli_ore_block"
		},
		// ???/?? ??
		"nether_gemstone_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/nether_gemstone_ore_block"
		},
		// ???/?? ??
		"end_gemstone_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/end_gemstone_ore_block"
		},
		// ???/?? ??
		"deepslate_gemstone_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/deepslate_gemstone_ore_block"
		},
		// ???/?? ??
		"gemstone_ore_block": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/gemstone_ore_block"
		},
		// ???/?? ??
		"witch_head_block": {
			// ??? ?? ?
			"textures": "textures/blocks/mob_heads/witch_head_block"
		},
		// ???/?? ??
		"panda_head_block": {
			// ??? ?? ?
			"textures": "textures/blocks/mob_heads/panda_head_block"
		},
		// ???/?? ??
		"panda_head_brown_block": {
			// ??? ?? ?
			"textures": "textures/blocks/mob_heads/panda_head_brown_block"
		},
		// ???/?? ??
		"llama_head_white_block": {
			// ??? ?? ?
			"textures": "textures/blocks/mob_heads/llama_head_white_block"
		},
		// ???/?? ??
		"llama_head_cream_block": {
			// ??? ?? ?
			"textures": "textures/blocks/mob_heads/llama_head_cream_block"
		},
		// ???/?? ??
		"llama_head_brown_block": {
			// ??? ?? ?
			"textures": "textures/blocks/mob_heads/llama_head_brown_block"
		},
		// ???/?? ??
		"llama_head_gray_block": {
			// ??? ?? ?
			"textures": "textures/blocks/mob_heads/llama_head_gray_block"
		},
		// ???/?? ??
		"koala_head_block": {
			// ??? ?? ?
			"textures": "textures/blocks/mob_heads/koala_head_block"
		},
		// ???/?? ??
		"arxance_head_block": {
			// ??? ?? ?
			"textures": "textures/blocks/mob_heads/arxance_head_block"
		},
		//farming
		"reveril_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/reveril_0"
		},
		// ???/?? ??
		"reveril_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/reveril_1"
		},
		// ???/?? ??
		"reveril_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/reveril_2"
		},
		// ???/?? ??
		"reveril_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/reveril_3"
		},
		// ???/?? ??
		"bubblo_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/bubblo_0"
		},
		// ???/?? ??
		"bubblo_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/bubblo_1"
		},
		// ???/?? ??
		"bubblo_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/bubblo_2"
		},
		// ???/?? ??
		"bubblo_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/bubblo_3"
		},
		// ???/?? ??
		"telerit_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/telerit_0"
		},
		// ???/?? ??
		"telerit_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/telerit_1"
		},
		// ???/?? ??
		"telerit_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/telerit_2"
		},
		// ???/?? ??
		"telerit_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/telerit_3"
		},
		// ???/?? ??
		"visadyme_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/visadyme_0"
		},
		// ???/?? ??
		"visadyme_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/visadyme_1"
		},
		// ???/?? ??
		"visadyme_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/visadyme_2"
		},
		// ???/?? ??
		"visadyme_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/visadyme_3"
		},
		// ???/?? ??
		"endurill_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/endurill_0"
		},
		// ???/?? ??
		"endurill_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/endurill_1"
		},
		// ???/?? ??
		"endurill_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/endurill_2"
		},
		// ???/?? ??
		"endurill_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/endurill_3"
		},
		// ???/?? ??
		"enhantoe_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/enhantoe_0"
		},
		// ???/?? ??
		"enhantoe_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/enhantoe_1"
		},
		// ???/?? ??
		"enhantoe_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/enhantoe_2"
		},
		// ???/?? ??
		"enhantoe_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/enhantoe_3"
		},
		// ???/?? ??
		"jumia_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/jumia_0"
		},
		// ???/?? ??
		"jumia_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/jumia_1"
		},
		// ???/?? ??
		"jumia_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/jumia_2"
		},
		// ???/?? ??
		"jumia_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/jumia_3"
		},
		// ???/?? ??
		"shapis_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/shapis_0"
		},
		// ???/?? ??
		"shapis_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/shapis_1"
		},
		// ???/?? ??
		"shapis_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/shapis_2"
		},
		// ???/?? ??
		"shapis_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/shapis_3"
		},
		// ???/?? ??
		"strontar_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/strontar_0"
		},
		// ???/?? ??
		"strontar_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/strontar_1"
		},
		// ???/?? ??
		"strontar_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/strontar_2"
		},
		// ???/?? ??
		"strontar_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/strontar_3"
		},
		// ???/?? ??
		"swiftine_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/swiftine_0"
		},
		// ???/?? ??
		"swiftine_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/swiftine_1"
		},
		// ???/?? ??
		"swiftine_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/swiftine_2"
		},
		// ???/?? ??
		"swiftine_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/swiftine_3"
		},
		// ???/?? ??
		"windrill_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/windrill_0"
		},
		// ???/?? ??
		"windrill_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/windrill_1"
		},
		// ???/?? ??
		"windrill_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/windrill_2"
		},
		// ???/?? ??
		"windrill_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/windrill_3"
		},
		// ???/?? ??
		"slowent_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/slowent_0"
		},
		// ???/?? ??
		"slowent_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/slowent_1"
		},
		// ???/?? ??
		"slowent_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/slowent_2"
		},
		// ???/?? ??
		"slowent_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/slowent_3"
		},
		//CROPS
		"cabbage_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/cabbage_0"
		},
		// ???/?? ??
		"cabbage_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/cabbage_1"
		},
		// ???/?? ??
		"cabbage_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/cabbage_2"
		},
		// ???/?? ??
		"cabbage_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/cabbage_3"
		},
		// ???/?? ??
		"carrot_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/carrot_0"
		},
		// ???/?? ??
		"carrot_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/carrot_1"
		},
		// ???/?? ??
		"carrot_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/carrot_2"
		},
		// ???/?? ??
		"carrot_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/carrot_3"
		},
		// ???/?? ??
		"onion_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/onion_0"
		},
		// ???/?? ??
		"onion_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/onion_1"
		},
		// ???/?? ??
		"onion_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/onion_2"
		},
		// ???/?? ??
		"onion_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/onion_3"
		},
		// ???/?? ??
		"potato_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/potato_0"
		},
		// ???/?? ??
		"potato_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/potato_1"
		},
		// ???/?? ??
		"potato_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/potato_2"
		},
		// ???/?? ??
		"potato_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/potato_3"
		},
		// ???/?? ??
		"strawberry_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/strawberry_0"
		},
		// ???/?? ??
		"strawberry_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/strawberry_1"
		},
		// ???/?? ??
		"strawberry_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/strawberry_2"
		},
		// ???/?? ??
		"strawberry_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/strawberry_3"
		},
		// ???/?? ??
		"sweetcorn_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/sweetcorn_0"
		},
		// ???/?? ??
		"sweetcorn_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/sweetcorn_1"
		},
		// ???/?? ??
		"sweetcorn_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/sweetcorn_2"
		},
		// ???/?? ??
		"sweetcorn_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/sweetcorn_3"
		},
		// ???/?? ??
		"tomato_0": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/tomato_0"
		},
		// ???/?? ??
		"tomato_1": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/tomato_1"
		},
		// ???/?? ??
		"tomato_2": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/tomato_2"
		},
		// ???/?? ??
		"tomato_3": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/tomato_3"
		},
		// ???/?? ??
		"brewing_table": {
			// ??? ?? ?
			"textures": "textures/blocks/brewing_table"
		},
		// ???/?? ??
		"decanting_table": {
			// ??? ?? ?
			"textures": "textures/blocks/decanting_table"
		},
		// ???/?? ??
		"cure_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/cure_soaked_sponge"
		},
		// ???/?? ??
		"fire_resistance_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/fire_resistance_soaked_sponge"
		},
		// ???/?? ??
		"grow_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/grow_soaked_sponge"
		},
		// ???/?? ??
		"haste_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/haste_soaked_sponge"
		},
		// ???/?? ??
		"invisibility_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/invisibility_soaked_sponge"
		},
		// ???/?? ??
		"jump_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/jump_soaked_sponge"
		},
		// ???/?? ??
		"leap_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/leap_soaked_sponge"
		},
		// ???/?? ??
		"levitation_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/levitation_soaked_sponge"
		},
		// ???/?? ??
		"night_vision_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/night_vision_soaked_sponge"
		},
		// ???/?? ??
		"prayer_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/prayer_soaked_sponge"
		},
		// ???/?? ??
		"shrink_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/shrink_soaked_sponge"
		},
		// ???/?? ??
		"slow_falling_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/slow_falling_soaked_sponge"
		},
		// ???/?? ??
		"stamina_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/stamina_soaked_sponge"
		},
		// ???/?? ??
		"strength_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/strength_soaked_sponge"
		},
		// ???/?? ??
		"swiftness_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/swiftness_soaked_sponge"
		},
		// ???/?? ??
		"teleportation_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/teleportation_soaked_sponge"
		},
		// ???/?? ??
		"transformation_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/transformation_soaked_sponge"
		},
		// ???/?? ??
		"water_breathing_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/water_breathing_soaked_sponge"
		},
		// ???/?? ??
		"self_destruct_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/self_destruct_soaked_sponge"
		},
		// ???/?? ??
		"darkness_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/darkness_soaked_sponge"
		},
		// ???/?? ??
		"blindness_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/blindness_soaked_sponge"
		},
		// ???/?? ??
		"infested_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/infested_soaked_sponge"
		},
		// ???/?? ??
		"oozing_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/oozing_soaked_sponge"
		},
		// ???/?? ??
		"poison_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/poison_soaked_sponge"
		},
		// ???/?? ??
		"slowness_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/slowness_soaked_sponge"
		},
		// ???/?? ??
		"weakness_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/weakness_soaked_sponge"
		},
		// ???/?? ??
		"weaving_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/weaving_soaked_sponge"
		},
		// ???/?? ??
		"wind_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/wind_soaked_sponge"
		},
		// ???/?? ??
		"below_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/below_soaked_sponge"
		},
		// ???/?? ??
		"surface_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/surface_soaked_sponge"
		},
		// ???/?? ??
		"roar_soaked_sponge": {
			// ??? ?? ?
			"textures": "textures/blocks/potion_soaked_sponges/roar_soaked_sponge"
		},
		// ???/?? ??
		"fertile_soil": {
			// ??? ?? ?
			"textures": "textures/blocks/fertile_soil"
		},
		// ???/?? ??
		"rich_soil": {
			// ??? ?? ?
			"textures": "textures/blocks/rich_soil"
		},
		// ???/?? ??
		"pristine_soil": {
			// ??? ?? ?
			"textures": "textures/blocks/pristine_soil"
		},
		// ???/?? ??
		"white_rose": {
			// ??? ?? ?
			"textures": "textures/blocks/farming/white_rose"
		},
		// ???/?? ??
		"deepslate_iron_ore": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/deepslate_iron_ore_block"
		},
		// ???/?? ??
		"iron_ore": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/iron_ore_block"
		},
		// ???/?? ??
		"deepslate_copper_ore": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/deepslate_copper_ore_block"
		},
		// ???/?? ??
		"copper_ore": {
			// ??? ?? ?
			"textures": "textures/blocks/ore_blocks/copper_ore_block"
		},
		// ???/?? ??
		"smithing_anvil": {
			// ??? ?? ?
			"textures": "textures/blocks/smithing_anvil"
		},
		// ???/?? ??
		"smithing_anvil_base": {
			// ??? ?? ?
			"textures": "textures/blocks/smithing_anvil_base"
		},
		// ???/?? ??
		"fan_side": {
			// ??? ?? ?
			"textures": "textures/blocks/fan_side"
		},
		// ???/?? ??
		"fan_bottom": {
			// ??? ?? ?
			"textures": "textures/blocks/fan_bottom"
		},
		// ???/?? ??
		"fan_top": {
			// ??? ?? ?
			"textures": "textures/blocks/fan_top"
		},
		// ???/?? ??
		"fan_spinning_1": {
			// ??? ?? ?
			"textures": "textures/blocks/fan_spinning_1"
		},
		// ???/?? ??
		"runecraft_furnace_inactive": {
			// ??? ?? ?
			"textures": "textures/blocks/runecraft_furnace_inactive"
		},
		// ???/?? ??
		"runecraft_furnace_side": {
			// ??? ?? ?
			"textures": "textures/blocks/runecraft_furnace_side"
		},
		// ???/?? ??
		"runecraft_furnace_top_bottom": {
			// ??? ?? ?
			"textures": "textures/blocks/runecraft_furnace_top_bottom"
		},
		// ???/?? ??
		"runecraft_furnace_active": {
			// ??? ?? ?
			"textures": "textures/blocks/furnace_active"
		},
		// ???/?? ??
		"group_display_herbs": {
			// ??? ?? ?
			"textures": "textures/items/group_display_herbs"
		},
		// ???/?? ??
		"group_display_sponges": {
			// ??? ?? ?
			"textures": "textures/items/group_display_sponges"
		},
		// ???/?? ??
		"group_display_fragments": {
			// ??? ?? ?
			"textures": "textures/items/group_display_fragments"
		},
		// ???/?? ??
		"group_display_buriables": {
			// ??? ?? ?
			"textures": "textures/items/group_display_buriables"
		},
		// ???/?? ??
		"group_display_potions": {
			// ??? ?? ?
			"textures": "textures/items/group_display_potions"
		},
		// ???/?? ??
		"noting_table": {
			// ??? ?? ?
			"textures": "textures/blocks/noting_table"
		}
	}
}

wooden_spear.texture_set.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: wooden_spear.texture_set.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // ?? ??
    "format_version": "1.21.30",
    // ???/?? ??
    "minecraft:texture_set": {
        // ?? (R,G,B,A)
        "color": "wooden_spear",
        // ?? ??
        "metalness_emissive_roughness_subsurface": "wooden_spear_mers"
    }
}

wooden_spear.texture_set.json UI 재료 모음 · textures

필요한 부분만 참고해서 가져가세요.

// 예제: wooden_spear.texture_set.json
// 분류: UI 재료 모음 / textures
// 참고: JSON UI는 // 주석을 허용합니다.
// 읽는법: namespace=이름표, controls=화면에 올리는 부품 목록
{
    // ?? ??
    "format_version": "1.21.30",
    // ???/?? ??
    "minecraft:texture_set": {
        // ?? (R,G,B,A)
        "color": "wooden_spear",
        // ?? ??
        "metalness_emissive_roughness_subsurface": "wooden_spear_mers"
    }
}